  Linux Modem-HOWTO
  David S. Lawyer  (dave@lafn.org) und Claus Poltermann
  (Claus.Poltermann@gmx.de)
  v0.04, August 2001

  Dieses HOWTO bietet Hilfe bei Auswahl, Anschluss, Konfiguration von
  Modems, erlutert Grundlagen und gibt Tipps zur Fehlerbehebung.  Fr
  Hinweise zum Einsatz von seriellen Multiport-Karten sei hier  auf das
  Serial HOWTO verwiesen.


  1.  Einleitung

  Dieses HOWTO enthlt viele Informationen aus dem Serial HOWTO von Greg
  Hankins und behandelt externe und interne Modems. Bei den internen
  Modems liegt der Schwerpunkt auf der Behandlung von ISA-Bus-Modems,
  obwohl das meiste auch fr PCI-Bus-Modems gelten sollte. Fr PCMCIA-
  Modems siehe das (englische) PCMCIA HOWTO: PCMCIA serial and modem
  devices.  Dieses HOWTO behandelt weder PPP (Point-To-Point Protocol,
  es wird verwendet, um mit Hilfe eines Modems eine Verbindung zum
  Internet herzustellen) noch Kommunikationsprogramme.  Es erklrt aber,
  wie Kommunikationsprogramme verwendet werden, um zu testen, ob Ihr
  Modem korrekt funktioniert und eine Verbindung aufgebaut werden kann.
  Wenn Sie ein Modem verwenden mchten, um einen Zugang zum Internet zu
  bekommen, dann ist es notwendig, PPP einzurichten. Es gibt eine Menge
  Dokumentation ber PPP (siehe z.B. im Verzeichnis /usr/doc/ppp; es
  gibt auch ein PPP HOWTO).



  1.1.  Copyright

  Dieses Dokument ist urheberrechtlich geschtzt. Das Copyright fr die
  englische Version, auf der dieses Dokument basiert, liegt bei David S.
  Lawyer und Greg Hankins. Das Copyright fr die deutsche Version liegt
  bei Claus Poltermann und Marco Budde.


  Das Dokument darf gem der GNU General Public License verbreitet
  werden.  Insbesondere bedeutet dieses, da der Text sowohl ber
  elektronische wie auch physikalische Medien ohne die Zahlung von
  Lizenzgebhren verbreitet werden darf, solange dieser Copyright
  Hinweis nicht entfernt wird. Eine kommerzielle Verbreitung ist erlaubt
  und ausdrcklich erwnscht. Bei einer Publikation in Papierform ist
  das Deutsche Linux HOWTO Projekt hierber zu informieren.


  1.2.  Hinweise zur deutschen bersetzung

  Dieses HOWTO basiert auf dem englischen Modem HOWTO von David S.
  Lawyer. Die bersetzung habe ich nicht immer wortwrtlich
  durchgefhrt, um dem Text einen deutschsprachigen Charakter zu
  verleihen.  An manchen Stellen habe ich den Text gegenber dem
  Original auch erweitert, wenn ich der Ansicht war, dass einige
  zustzliche erklrende Worte zu einem besseren Verstndnis beitragen
  knnten.  Hinweise aller Art und Fragen richten Sie bitte daher zuerst
  an mich (Claus.Poltermann@gmx.de); falls das Problem auch das
  englische Original betrifft, werde ich die Hinweise weiterleiten.  Die
  meisten der in diesem Text enthaltenen Rechtschreibfehler wurden
  allerdings durch die Rechtschreibreform legalisiert.  Entgegen dem im
  Deutschen blichen unpersnlichen man-Stil findet sich der Leser
  hufig direkt, wenn auch hflich distanziert, mit Sie angesprochen -
  das schulterklopfende Du erschien mir zu persnlich fr die
  bersetzung des englischen you.  Wider besseres Wissen habe ich fr
  den Plural von Modem Modems statt Modeme verwendet, weil sich
  diese Bezeichnung in der Praxis durchgesetzt hat. Und schlielich
  mgen mir Benutzerinnen von Linux verzeihen, wenn sie in diesem Text
  als Benutzer oder Anwender angesprochen werden.


  1.3.  Fr zuknftige Versionen ist Ihre Mitarbeit erwnscht

  Wenn Sie in diesem Text sachliche oder logische Fehler,
  Rechtschreibfehler oder Unklarheiten feststellen, oder wenn Sie eine
  andere Ansicht haben als hier dargestellt, dann lassen Sie es mich
  bitte wissen. Bitte vergewissern Sie sich aber vorher, dass Sie die
  neueste Version haben. Bitte senden Sie mir auch jede andere
  Information, von der Sie glauben, dass Sie in diesem Zusammenhang
  behandelt werden soll.


  1.4.  Neue Versionen dieses HOWTOs

  Neue Versionen dieses Modem-HOWTOs werden alle paar Monate
  verffentlicht.  Vielleicht finden Sie Hinweise zu Ihrem Problem in
  der aktuellsten Version.  Sie ist als Online-Version oder zum
  Herunterladen auf der Homepage des Deutschen Linux HOWTO Projekts


       http://www.tu-harburg.de/dlhp/


  erhltlich.


  1.5.  Was ist ein Modem?

  Ein Modem ist ein Gert, welches es ermglicht, digitale Signale ber
  gewhnliche Telefonleitungen zu senden, die nicht fr die bertragung
  digitaler Signale ausgelegt sind. Solche Leitungen werden im folgenden
  als analog bezeichnet. Analoge Telefonleitungen sind geeignet, um
  vor allem die zur sprachlichen Verstndigung notwendigen niedrigen
  Frequenzen (bis ca. 3 kHz) zu bertragen. Eine digitale
  Telefonleitung ist dagegen technisch auf die bei der bertragung von
  (hochfrequenten) digitalen Signalen auftretenden Effekte abgestimmt.
  Wenn alle Telefonleitungen digital wren, dann bruchte man kein
  Modem. Es erlaubt dem Computer sich mit dem Rest der Welt zu verbinden
  und mit ihr zu kommunizieren. Wenn man ein Modem verwendet, dann nutzt
  man normalerweise auch ein Kommunikationsprogramm oder einen Web
  Browser, um ber eine Telefonleitung eine Whlverbindung aufzubauen
  und Daten zu bertragen.  Ein fortgeschrittener Modem-Benutzer kann
  sein System so einrichten, dass andere sein Modem (natrlich wiederum
  mit Hilfe eines Modems) anrufen und den angeschlossenen Computer
  verwenden knnen. Dies wird als Einwahl bezeichnet (engl. Dial-
  in).

  Es gibt zwei Grundtypen von Modems fr einen PC: externe Modems und
  interne Modems. Das externe Modem steht auf Ihrem Schreibtisch
  ausserhalb des PC, whrend das interne Modem sich nicht sichtbar im
  Inneren des PC befindet. Das externe Modem wird mit einem Anschluss an
  der Rckseite des PCs verbunden, der als serieller Port (oder auch
  serielle Schnittstelle) bekannt ist. Das interne Modem ist eine
  Steckkarte, die im Computer installiert wird und ber einen
  (unsichtbaren) eingebauten seriellen Port verfgt. Ein detaillerter
  Vergleich ist im Abschnitt ``Externe und interne Modems'' zu finden.
  Wenn Sie sich also fr ein internes Modem entscheiden, dann
  entscheiden Sie sich auch fr einen dedizierten seriellen Port; das
  ist ein Port, der nur fr dieses Modem verwendet werden kann und nicht
  fr ein anderes Gert, wie z.B. ein anderes Modem oder einen Drucker.
  Unter Linux heien die seriellen Ports ttyS0, ttyS1, usw.; dies
  entspricht blicherweise den unter DOS/Windows bekannten
  Schnittstellen COM1, COM2, usw.

  Der serielle Port ist nicht zu verwechseln mit dem Universal Serial
  Bus USB.  Der USB verwendet einen speziellen Anschlu und es werden
  vermehrt Peripheriegerte wie z.B. Modems mit einer USB Schnittstelle
  angeboten.  Im Abschnitt ``Grundwissen ber Modems und serielle
  Ports'' sind Modems und serielle Ports genauer beschrieben.

  Viele Modems knnen auch Faxe versenden (Fax Modems). Der Abschnitt
  ``Fax'' enthlt eine bersicht ber Fax Software.  Voice Modems
  knnen als Anrufbeantworter eingesetzt werden und sprachliche
  Nachrichten verarbeiten, siehe ``Sprachnachrichten''.


  1.6.  Hinweise zur schnellen Installation

  1.6.1.  Installation eines externen Modems

  Verbinden Sie das Modem mithilfe eines Modemkabels mit einem freien
  seriellen Anschlu am PC. Den Namen des seriellen Ports mssen Sie
  wissen: In den meisten Fllen entspricht COM1 ttyS0 und COM2 ttyS1.
  Eventuell mssen Sie im BIOS Setup nachsehen. Auerdem muss das Modem
  noch mit Strom versorgt werden; dies geschieht meist ber ein
  passendes Steckernetzteil. Weitere Hinweise finden Sie im Abschnitt
  ``Alle Modems''.


  1.6.2.  Interne Modems (ISA Bus)

  Wenn sich das Modem nur unter MS Windows betreiben lt, haben Sie
  leider Pech und Sie knnen es unter Linux nicht benutzen.

  Wenn Sie bereits zwei serielle Ports haben, konfigurieren Sie den
  internen Modemport als dritten seriellen Port (ttyS2 entspricht COM3).
  Dazu bentigen Sie eine freie IRQ Nummer.  Oft knnen Sie dafr IRQ5
  verwenden, wenn Sie keinen zweiten parallelen Port oder keine
  Soundkarte haben. Dann setzten Sie die Jumper (das sind winzige
  Anschlussstifte auf der Platine, die mit einer kleinen Brcke
  verbunden werden oder kleine Schiebeschalter von der Gre eines ICs)
  auf dem internen Modem auf diesen IRQ und die I/O-Adresse auf 3E8
  (ttyS2).

  Dies ist oft leichter gesagt als getan.  Wenn das Modem ein PnP (Plug
  and Play) Modem fr den ISA-Bus ist, kann diese Einstellung vielleicht
  auch mit Hilfe des Programms isapnp aus den isapnptools durchgefhrt
  werden. Weitere Hinweise dazu erhalten Sie mit



       man isapnp




  oder in den entsprechenden FAQs. Es gibt auch ein Plug-and-Play HOWTO.
  Bei einem PnP-BIOS knnen Sie im CMOS-Setup einstellen, dass Sie kein
  PnP-Betriebssystem haben; das BIOS kann dann passende Werte fr IRQ-
  und I/O-Adresse in der Modemkarte einstellen.  Falls Sie das Modem
  unter Windows 9x konfiguriert haben, habe ich einmal geglaubt, dass
  Windows so freundlich sein wrde, die passende Konfiguration (IRQ- und
  I/O-Adresse) in den BIOS-Flash-Speicher zu schreiben, so dass sie vom
  BIOS verwendet werden kann, wenn Linux gestartet wird. Aber Windows
  verhlt sich nicht immer so; probieren Sie dies nur als letzte
  Mglichkeit. Vielleicht gibt es auch einen Weg, die PnP-Funktionalitt
  mithilfe von Windows-Software, die mit dem Modem geliefert wurde, zu
  deaktivieren.

  Schlielich mssen Sie noch die Datei finden, von der aus setserial
  aufgerufen wird und etwa folgende Zeile hinzufgen:




       setserial /dev/ttyS2 irq5


  Weitere Informationen finden Sie im nchsten Abschnitt.


  1.6.3.  Alle Modems

  Verbinden Sie das Modem mit der Telefonleitung. Starten Sie ein
  Terminalprogramm wie minicom und rufen Sie das Konfigurationsmen fr
  den seriellen Port auf. Weisen Sie ihm eine hohe Baudrate zu, die ein
  mehrfaches der Bitrate Ihres Modems betrgt; siehe auch
  ``Geschwindigkeitstabelle''. Geben Sie den vollstndigen Namen des
  seriellen Ports an wie z.B. /dev/ttyS1.  Schalten Sie die
  Hardwareflusskontrolle ein (RTS/CTS). Sie mssen diese Einstellungen
  nun abspeichern und minicom beenden.  Starten Sie minicom erneut,
  geben Sie AT ein, um zu berprfen, ob Ihr Modem erkannt wird und mit
  OK antwortet. Rufen Sie dann das Nummernverzeichnis auf und whlen Sie
  eine Nummer.



  2.  Grundwissen ber Modems und serielle Ports

  Um ein Modem anzuschliessen und zu verwenden, brauchen Sie nicht
  unbedingt ein Grundwissen ber Modems oder serielle Ports.  Falls
  Fehler auftreten, ist es aber fr die Problemlsung sehr hilfreich,
  wenn Sie die Grundlagen verstehen.  Wenn Sie diesen Abschnitt gelesen
  haben und noch mehr ber Modems wissen mchten, finden Sie weitere
  Informationen im Abschnitt ``Wie ein Modem technisch funktioniert''
  (dieser Abschnitt ist allerdings noch nicht fertiggestellt).  Im
  Serial HOWTO finden Sie weitere Informationen ber serielle Ports.


  2.1.  Ein Modem konvertiert digitale Signale in analoge (und
  umgekehrt)

  Die meisten Telefon-Hauptleitungen sind bereits digital, aber die
  Kabel, die zu Ihrem Haus oder Ihrer Firma fhren, sind normalerweise
  analog. Das bedeutet, dass sie eine Welle in Form einer
  Spannungsschwankung bertragen, die ein Abbild der Schallwelle ist,
  die von Ihrer Stimme erzeugt wird. Eine solche Spannungsschwankung
  heit analog. Wrde man sie auf einem Oszilloskop sichtbar machen,
  dann wrde sie aussehen wie eine Sinuskurve mit wechselnder Frequenz
  und Amplitude. Ein digitales Signal hat dagegen einen rechteckigen
  Verlauf. Bsp: 3 V (Volt) knnte einer digitale Eins und 0 V knnte
  einer digitalen Null entsprechen. Bei den meisten seriellen Ports, die
  von einem externen Modem verwendet werden, entspricht +12 V einem
  0-bit und -12 V einem 1-bit (einige verwenden auch + oder -5 V).

  Um Daten von Ihrem Computer ber eine Telefonleitung zu senden, nimmt
  das Modem die digitalen Signale vom Computer entgegen und wandelt sie
  in ein analoges Signal. Dies wird erreicht, indem es eine Spannung in
  Form einer analogen Sinuskurve erzeugt und diese dann MOduliert. Das
  Ergebnis reprsentiert noch immer digitale Daten, es knnte auch
  digitales Signal anstelle von analoges Signal heien. Aber es sieht so
  hnlich aus wie ein analoges Signal und beinahe jeder nennt es auch
  so. Am anderen Ende der Telefonleitung DEModuliert ein anderes Modem
  dieses Signal und das rein digitale Signal ist wiederhergestellt. Ein
  Modem ist daher ein MOdulator-DEModulator.


  2.2.  Was ist ein serieller Port?

  2.2.1.  Einfhrung in die serielle Datenbertragung

  Nachdem sich zwischen dem Modem und dem Computer ein serieller
  Anschlu befindet, ist es notwendig, neben dem Modem auch die
  Arbeitsweise eines seriellen Ports zu verstehen. Der serielle Port ist
  ein I/O (Input/Output, Eingabe/Ausgabe) Gert.

  Die meisten PCs haben ein oder zwei serielle Ports. Jeder hat einen
  9-poligen (manchmal auch einen 25-poligen) Anschlussstecker auf der
  Rckseite des Computers. Einer der Anschlussstifte ist fr das Senden
  von Daten zustndig, ein anderer fr den Empfang. Die anderen Pins
  sind entweder auf Masse gelegt oder fr Kontrollaufgaben vorgesehen.

  Der serielle Port ist mehr als nur ein einfacher Anschlussstecker. Er
  wandelt parallele Daten in serielle Daten und ndert ihre elektrische
  Darstellung. Innerhalb des Computers flieen die Datenbits parallel
  (und brauchen viele parallele Leitungen gleichzeitig). Ein serieller
  Datenstrom fliet ber eine einzige Leitung (wie die Leitung, die mit
  dem Pin fr das Senden oder Empfangen des Anschlusssteckers verbunden
  ist). Damit der serielle Port solch einen Datenstrom erzeugen kann,
  mu er die parallelen Daten (aus dem Inneren des Computers) in
  serielle Daten umwandeln, um sie zu senden. Fr den Empfang gilt genau
  das umgekehrte Verhalten.

  Der grte Teil der Elektronik eines seriellen Ports befindet sich auf
  einem Chip (oder in einem bestimmten Abschnitt eines Chips), der unter
  dem Namen UART bekannt ist. Im Serial HOWTO finden Sie weiter
  Informationen ber UARTs.

  Im restlichen Teil dieses Kapitels wird die Rolle des UART im
  Gesamtsystem vorgestellt.


  2.2.2.  Anschlussstifte und Anschlusskabel

  ltere PCs verwendeten 25-polige Anschlsse, aber nur hchstens 9 Pins
  waren tatschlich belegt, deshalb sind die meisten Anschlussstecker
  heutiger PCs nur 9-polig. Jeder der neun Anschlussstifte (Pins) ist
  mit einer Leitung verbunden. Neben den beiden Leitungen, die fr das
  Senden und Empfangen der Daten verwendet werden, ist ein weiterer Pin
  bzw. eine weitere Leitung mit der Signalmasse belegt. Die Spannung auf
  jeder Leitung wird in Bezug auf diese Signalmasse gemessen. Es mssen
  also mindestens drei Leitungen verwendet werden, um Daten gleichzeitig
  senden und empfangen zu knnen. Es ist aber auch mglich, ohne die
  Masseleitung zu arbeiten, allerdings langsamer und manchmal treten
  Fehler auf.

  Die brigen Leitungen sind nur fr die Kontrolle des Datenaustausches
  vorgesehen und nicht fr die bertragung von Bytes. Alle diese Signale
  knnten ber eine einzige Leitung gesendet werden, aber fr jedes
  Signal gibt es eine eigene dedizierte Leitung. Diese Leitungen werden
  Modem-Steuerleitungen genannt. Diese Steuerleitungen befinden sich
  entweder im aktiven Zustand (Ein) mit einer Spannung von +12 V oder im
  inaktiven Zustand (Aus) mit einer Spannung von -12 V. Eine der
  Leitungen signalisiert dem Computer, das Senden von Bytes an das Modem
  zu unterbrechen. Umgekehrt signalisiert eine andere Leitung dem Modem,
  das Senden von Bytes an den Computer einzustellen. Wieder andere
  Leitungen veranlassen das Modem, aufzulegen, oder teilen dem Computer
  mit, dass eine Verbindung hergestellt wurde oder dass ein
  Klingelsignal auf der Leitung liegt (wenn jemand versucht anzurufen).


  2.2.3.  Ein internes Modem enthlt einen seriellen Port

  Fr ein internes Modem gibt es keinen 9-poligen Verbindungsstecker,
  aber das Verhalten ist exakt so, als wrden die oben erwhnten
  Leitungen existieren. Anstelle eines 12-Volt Spannungspegels auf einer
  Leitung, der den Status auf einer Modemsteuerleitung angibt, verwendet
  das interne Modem einfach ein Statusbit in seinem eigenen Speicher
  (ein Register), um den Status dieser nicht existierenden Steuerleitung
  zu bestimmen. Der interne serielle Port des Modems sieht fr den
  Computer aus wie ein richtiger serieller Port. Fr ihn gelten sogar
  die selben Geschwindigkeitsgrenzen fr die Datenbertragung, die man
  bei gewhnlichen seriellen Schnittstellen einstellt, z.B.
  115200 Bits/s. Unglcklicherweise arbeiten viele interne Modems nicht
  auf diese Weise, sondern nutzen MS Windows Software fr ihre Funktion
  und arbeiten daher nicht unter Linux. Siehe auch den Abschnitt
  ``Interne Modems, die zu meiden sind (Winmodems etc.)''.


  2.3.  I/O-Adressen und IRQ

  Weil der Computer mit jeder seriellen Schnittstelle kommuniziert, muss
  das Betriebssystem (Operating System, OS) wissen, dass die seriellen
  Schnittstellen existieren, wo sie sind (ihre I/O-Adressen) und welche
  Leitung die serielle Schnittstelle verwendet, um einen Dienst der CPU
  des Computers in Anspruch zu nehmen. Deshalb muss innerhalb der
  seriellen Schnittstelle sowohl die Ein-/Ausgabe-Adresse (I/O) als auch
  die Interrupt ReQuest Nummer (IRQ) in einem nicht flchtigen Speicher
  abgelegt werden. Der IRQ bestimmt, welche Leitung fr ein Interrupt
  Signal verwendet wird, um einen Dienst der CPU zu beanspruchen. Siehe
  auch Abschnitt ``Interrupts''.

  Beim PCI-Bus funktioniert das alles etwas anders, da der PCI-Bus ber
  eine eigene Interrupt-Verarbeitung verfgt. Das BIOS auf PCI-Boards
  bildet die PCI-Interrupts jedoch auf IRQs ab, so dass sich nach auen
  hin alles so verhlt wie oben beschrieben, mit der Ausnahme, dass sich
  zwei oder mehr Gerte einen IRQ teilen knnen.

  I/O-Adressen sind nicht dasselbe wie Adressen im Hauptspeicher. Wenn
  eine I/O-Adresse auf dem Adressbus des Computers anliegt, wird eine
  andere Leitung aktiviert. Beides bedeutet fr den Hauptspeicher, die
  Adresse zu ignorieren, und es bedeutet fr alle angeschlossenen
  Gerte, die ber I/O-Adressen-verfgen (wie z.B. der serielle Port)
  die Adresse auszuwerten und sie mit der eigenen zu vergleichen. Wenn
  die Adresse bereinstimmt, liest das I/O-Gert die Daten auf dem
  Datenbus.


  2.4.  Namensgebung


  Die seriellen Schnittstellen heien unter Linux ttyS0, ttyS1, usw.
  (die korrespondierenden Schnittstellen unter DOS/Windows heien
  normalerweise COM1, COM2, usw).  Im /dev Verzeichnis gibt es eine
  spezielle Datei fr jeden Port.  Um sie anzuzeigen, knnen Sie
  folgenden Befehl eingeben:



       ls /dev/ttyS*





  Nur weil es z.B. eine Datei ttyS3 gibt, muss das aber nicht heien,
  dass auch ein physischer serieller Port existiert.

  Welcher dieser Namen (ttyS0, ttyS1, etc) zu welchem physikalisch Port
  gehrt, wird wie folgt bestimmt: die Treibersoftware des seriellen
  Ports verwaltet eine Tabelle, welche die Zuordnung von I/O-Adressen
  und ttyS-Namen enthlt. Diese Abbildung von Namen auf I/O-Adressen und
  IRQs kann mit Hilfe des Befehls setserial sowohl gelesen als auch
  gesetzt werden, siehe ``Was ist setserial?''.  Dieser Befehl setzt
  nicht die I/O-Adressen und IRQs in der Hardware selbst (dies wird
  durch Jumper oder Plug-and-Play Software vorgenommen). Welcher
  physikalische Port also z.B. mit ttyS1 korrespondiert, hngt folglich
  sowohl davon ab, was die Treibersoftware (per setserial Befehl) denkt
  und wie die Hardware konfiguriert ist. Falls ein Fehler gemacht wurde,
  kann es vorkommen, dass der physikalische Port keinem einzigen Namen
  (wie z.B. ttyS2) entspricht und daher auch nicht verwendet werden
  kann. Siehe auch ``Gertedateien fr die serielle Schnittstelle
  /dev/ttyS2, usw.''.


  2.5.  Interrupts

  Bytes kommen ber die Telefonleitung zum Modem, werden vom Modem von
  analog nach digital umgewandelt und werden auf dem Weg zu ihrem Ziel
  innerhalb des Computers der seriellen Schnittstelle bergeben. Wenn
  die serielle Schnittstelle z.B. 8 Bytes vom Modem empfngt (diese
  Anzahl kann auch auf 1, 4, 8 oder 14 eingestellt sein), signalisiert
  sie der CPU, diese Daten abzuholen, indem sie ein elektrisches Signal
  sendet. Dieses Signal liegt auf einer ganz bestimmten Leitung an und
  ist eine Aufforderung an die CPU, ihre momentane Arbeit kurz zu
  unterbrechen und sich um die serielle Schnittstelle zu kmmern (engl:
  Interrupt Request, abgekrzt IRQ).  ltere serielle Schnittstellen
  senden so ein Unterbrechungssignal fr jedes einzelne empfangene Byte.

  Jede Interrupt-Leitung innerhalb des Computers hat eine Nummer (im
  allgemeinen ebenfalls als IRQ bezeichnet) und die serielle
  Schnittstelle muss wissen, auf welcher Leitung sie ihre Anforderung zu
  signalisieren hat. Z.B. verwendet ttyS0 in der Regel die IRQ Nummer 4
  (IRQ4). Eine Liste dieser Nummern (und mehr) ist in der Manual Page
  des Kommandos setserial zu finden (man setserial, im Abschnit
  Configuring Serial Ports). Ein Interrupt Signal wird ausgelst, wann
  immer die serielle Schnittstelle die Aufmerksamkeit der CPU bentigt.
  Es ist wichtig, dass dies rechtzeitig geschieht, weil der
  Speicherpuffer der seriellen Schnittstelle nur 16 empfangene Bytes (in
  lteren Modems ist es nur ein Byte) aufnehmen kann. Wenn die CPU es
  nicht schafft, diese emfangenen Daten rechtzeitig abzuholen, dann
  bleibt fr weitere ankommende Bytes kein Platz mehr brig und der
  kleine Buffer kann berlaufen (Overrun). Es gehen dann Bytes verloren.
  Fr ein externes Modem gibt es keine Mglichkeit, den Datenfluss
  schnell genug zu stoppen, um diese Situation zu verhindern. Bei einem
  internen Modem ist der 16 Byte Buffer auf derselben Karte und ein
  gutes Modem wird nicht in diesen Buffer schreiben, wenn er voll ist.
  Deshalb wird ein gutes internes Modem den Buffer nicht zum berlaufen
  bringen und dies ist ein Vorteil eines internen Modems.

  Interrupts werden auch ausgelst, wenn die serielle Schnittstelle
  gerade alle 16 Bytes ihres kleinen Sendebuffers zum Modem bertragen
  hat. Es ist dann wieder Platz fr 16 weitere, zu sendende Bytes. Der
  Interrupt teilt dies der CPU mit, so dass sie weitere Bytes in den
  Sendebuffer schreiben kann.  Ein Interrupt wird auch ausgelst, wenn
  eine Modem-Steuerleitung ihren Status ndert.

  Die oben genannten Buffer sind alle in Form von Hardware realisert.
  Die serielle Schnittstelle hat auch groe Buffer im Bereich des
  Hauptspeichers.  Dies wird spter erklrt.

  Interrupts bertragen eine Menge Informationen, allerdings nur
  indirekt.  Der Interrupt selber signalisiert lediglich einem Chip, dem
  Interrupt Controller, dass ein bestimmter serieller Port um
  Aufmerksamkeit bittet.  Die CPU wird darber vom Interrupt Controller
  unterrichtet. Die CPU fhrt dann ein bestimmtes Programm aus, um den
  seriellen Port zu bedienen. Dieses Programm wird Interrupt Service
  Routine genannt und ist Bestandteil der Treibersoftware fr den
  seriellen Port. Es versucht herauszufinden, was im seriellen Port
  passiert ist und behandelt dann das Problem, wie z.B.  die bertragung
  von Datenbytes aus oder in den Buffer des Ports.  Die Service Routine
  kann leicht feststellen, was passiert ist, weil der serielle Port ber
  spezielle Register verfgt, deren I/O-Adressen der Treibersoftware
  bekannt sind. Diese Register enthalten Statusinformationen ber den
  seriellen Port. Die Software liest diese Register aus, erhlt dadurch
  Information, was passiert ist und kann entsprechende Manahmen
  einleiten.


  2.6.  Datenkompression (durch das Modem)

  Bevor wir mit den Grundlagen zur seriellen Schnittstellen fortfahren,
  mssen wir noch eine weitere Funktion des Modems verstehen:
  Datenkompression.  In manchen Fllen wird diese Aufgabe in
  Wirklichkeit von der Software ausgefhrt, die auf der CPU des Computer
  luft, aber unglcklicherweise funktioniert diese Software bislang nur
  unter MS Windows. Wir beschften uns hier mit dem Fall, dass das Modem
  selbst diese Aufgabe erledigt, denn dies ist eine Voraussetzung, damit
  das Modem auch unter Linux funktioniert.

  Um Daten schneller ber die Telefonleitung bertragen zu knnen, kann
  man sie komprimieren, indem man ein mageschneidertes
  Kodierungsverfahren verwendet, welches selber wieder von der Art der
  Daten abhngt. Die kodierten Daten sind kleiner (sie enthalten die
  gleiche Information in weniger Bytes) und knnen in krzerer Zeit ber
  das Internet bertragen werden. Dieser Vorgang wird als
  Datenkompression bezeichnet.

  Wenn Sie Dateien aus dem Internet herunterladen, dann sind sie
  wahrscheinlich bereits komprimiert und es ist fr das Modem unmglich,
  sie noch weiter zu komprimieren. Ihr Modem kann evtl. feststellen,
  dass die Daten bereits komprimiert wurden und einen weiteren
  Kompressionsversuch unterlassen.  Wenn Sie Daten empfangen, die von
  dem anderen Modem komprimiert wurden, so wird Ihr Modem sie
  dekomprimieren und sehr viel mehr Bytes erzeugen, als ber die
  Telefonleitung gesendet wurden. Daher wird der Datenfluss vom Modem in
  den Computer hher sein als der Fluss ber die Telefonleitung zu
  Ihnen. Das Verhltnis beider Flussgren wird Kompressionsrate
  genannt.  Kompressionsraten bis zu einem Wert von 4 sind mglich, aber
  sehr selten.


  2.7.  Fehlerkorrektur

  hnlich wie Datenkompression knnen Modems auch eine Fehlerkorrektur
  durchfhren. Eigentlich ist der Name Fehlerkorrektur falsch, denn
  das Modem kann einen Fehler nur erkennen und den fehlerhaften
  Datenblock ein zweites Mal anfordern. Das Modem kann den Fehler aber
  nicht selbstndig korrigieren. Wenn man es genau nimmt, msste man
  also von Fehlererkennung sprechen.

  Die serielle Schnittstelle erwartet, dass jedes zu bertragende Byte
  von zwei zustzlichen Bits eingerahmt ist: ein Start-Bit und ein Stop-
  Bit.  Ohne Verwendung einer Fehlerkorrektur werden diese zustzlichen
  Bits vom Modem ber die Telefonleitung bertragen.  Obwohl bei den
  Fehlerkorrekturverfahren zustzliche Steuer- und
  Prfsummeninformationen bertragen werden, die den effektiven
  Datendurchsatz (in Byte/s) reduzieren, fhrt die Tatsache, dass jetzt
  auf die Start- und Stop-Bits verzichtet werden kann, in Wirklichkeit
  zu einer leichten Erhhung des Datendurchsatzes. Die Bytes werden
  jetzt in einzelnen Paketen bertragen, und die Start- und Stop-Bits
  werden berflssig.


  2.8.  Datenflussrate (bertragungsgeschwindigkeit)

  Daten (Bytes, aus denen Briefe, Bilder usw. bestehen) flieen vom
  Computer zum Modem und dann ber die Telefonleitung (und umgekehrt).
  Durchsatzraten wie z.B. 56k (56000 Bits/s) werden flschlicherweise
  auch als bertragungsgeschwindigkeit bezeichnet, dieser Begriff hat
  sich jedoch weitgehend durchgesetzt. Gbe es keine Datenkompression,
  dann wrde die Durchsatzrate zwischen Computer und Modem etwa mit der
  Durchsatzrate auf der Telefonleitung bereinstimmen.

  In Wirklichkeit sind jedoch zwei verschiedene
  bertragungsgeschwindigkeiten an Ihrem Ende der Telefonleitung zu
  unterscheiden:


    Die bertragungsgeschwindigkeit auf der Telefonleitung zwischen
     beiden Modems (DCE Geschwindigkeit)

    Die bertragungsgeschwindigkeit zwischen der seriellen
     Schnittstelle und dem Modem (DTE Geschwindigkeit)

  Wenn Sie eine Verbindung mit einem Modem auf der anderen Seite der
  Telefonleitung aufbauen, schickt Ihnen das Modem oft eine Nachricht
  wie z.B. CONNECT 28000 oder CONNECT 115200. Was bedeuten diese
  Angaben?  Nun, damit kann entweder die DCE- oder die DTE-
  Geschwindigkeit gemeint sein.  Wenn der Wert hher ist als auf dem
  Modem angegeben, muss es die DTE Geschwindigkeit zwischen Modem und
  Computer sein. Dies ist der Fall fr den oben genannten Wert 115200.
  Der Wert 28800 kann nur die DCE-Geschwindigkeit sein, weil die
  serielle Schnittstelle diesen Wert nicht kennt. Das Modem kann so
  konfiguriert werden, dass es die eine oder die andere Geschwindigkeit
  meldet. Einige Modems melden beide Werte und zeigen den DCE-Wert z.B.
  als CARRIER 28800 an.

  Wenn Sie ein internes Modem verwenden, wrden Sie vielleicht nicht
  erwarten, dass es eine Begrenzung fr die bertragungsgeschwindigkeit
  zwischen Ihrem Modem und Ihrem Computer gibt, weil sich das Modem
  innerhalb des Computers befindet und fast ein Teil Ihres Computers
  ist. Aber es gibt diese Grenze, weil das Modem einen fest zugeordneten
  seriellen Port enthlt.

  Es ist wichtig zu verstehen, dass die durchschnittliche
  Geschwindigkeit hufig kleiner ist als die angegebene Geschwindigkeit,
  besonders auf der kurzen bertragungsstrecke zwischen Computer und
  Modem. Die geringere Durchschnittsgeschwindigkeit ist durch
  Wartezeiten bedingt. Wegen der ``Flusskontrolle'' knnen durchaus
  Wartezeiten von etwa einer Sekunde auftreten. Andererseits knnen auch
  sehr kurze Verzgerungen von wenigen Mikrosekunden vorkommen, die das
  Ende des einen Bytes und den Anfang des nchsten kennzeichnen.
  Auerdem knnen Modems auf kleinere Geschwindigkeiten umschalten, wenn
  die Qualitt der Telefonleitung whrend der Verbindungsdauer
  schlechter wird.

  Im Abschnitt ``Welche Geschwindigkeit sollte ich verwenden?'' wird
  erlutert, welche DTE Geschwindigkeit eingestellt werden sollte.


  2.9.  Flusskontrolle

  Unter Flusskontrolle wird die Fhigkeit verstanden, den Fluss von
  Bytes auf einer bertragungsleitung zu unterbrechen und ohne
  Datenverlust wieder aufzunehmen. Mittels Flusskontrolle kann das Modem
  die momentane Durchsatzrate der Daten beeinflussen.


  2.9.1.  Ein Beispiel fr Flusskontrolle

  Nehmen wir einmal an, Sie verbinden ein 33,6k Modem, welches einfach
  Bytes mit genau 33,6 kBits pro Sekunde (bps) ber die Telefonleitung
  sendet und empfngt, mit dem seriellen Port. Das Modem soll keinerlei
  Datenkompression oder Fehlerkorrektur durchfhren. Und nehmen wir
  weiter an, dass Sie die Geschwindigkeit der seriellen Schnittstelle
  auf 115.200 Bits/s (bps) eingestellt haben und Daten vom Computer zum
  Modem bertragen. Dann betrgt der Datenfluss vom Computer zum Modem
  115,2 kbps. Der Datenfluss des Modems ber die Telefonleitung betrgt
  im besten Fall jedoch nur 33,6 kbps.  Weil ein hherer Datenfluss in
  das Modem hineingeht als von ihm wieder herauskommt, speichert das
  Modem die Differenz (115,2k - 33,6k = 81,6k) in einem seiner Buffer.
  Dieser Buffer kann schnell berlaufen, wenn der 115,2k-Fluss nicht
  gestoppt wird.

  Und nun kommt die Flusskontrolle zu Hilfe. Wenn der Buffer des Modems
  fast voll ist, sendet das Modem ein Stop-Signal zum seriellen Port.
  Der serielle Port leitet dieses Signal zum Gertetreiber weiter der
  115,2 kbps Fluss wird gestoppt. Das Modem sendet weiterhin Daten mit
  33,6 kbps aus seinem vorher angefllten Buffer. Weil keine Daten mehr
  in diesen Buffer hineinflieen, beginnt er sich zu leeren. Wenn fast
  keine Bytes mehr im Buffer vorhanden sind, sendet das Modem ein Start-
  Signal zum seriellen Port und der 115,2 kbps Datenstrom beginnt wieder
  zu flieen. Flusskontrolle bewirkt also im Ergebnis einen
  durchschnittlichen Datendurchsatz (in unserem Fall 33,6 kbps), der
  deutlich unter dem Durchsatz von 115,2 kbps im eingeschalteten Zustand
  liegt. Dies ist die so genannte Start-Stop Flusskontrolle.

  Das eben geschilderte ist ein einfaches Beispiel fr Flusskontrolle
  fr einen Datenfluss vom Computer zum Modem, aber auch fr die
  entgegengesetzte bertragungsrichtung (vom Modem oder einem anderen
  Gert zum Computer) kann Flusskontrolle genutzt werden. Bei jeder
  Richtung des Datenflusses spielen 3 verschiedene Buffer ein Rolle: 1.
  innerhalb des Modems, 2. innerhalb des UART-Bausteins im seriellen
  Port und 3. in dem Hauptspeicher, der vom Gertetreiber des seriellen
  Ports verwendet wird.  Flusskontrolle schtzt diese Buffer vor einem
  berlauf. Die kleinen Hardware-Buffer des seriellen Ports sind durch
  diesen Mechanismus nicht direkt geschtzt, sie vertrauen statt dessen
  auf die schnelle Reaktion auf die von ihnen ausgelsten Interrupt-
  Signale.

  Dies war das Wichtigste ber Flusskontrolle, aber es gibt natrlich
  noch mehr Details.

  Fr die bertragungsrichtung vom Modem zum PC wird Flusskontrolle nur
  selten notwendig sein. Im Kapitel Complex Flow Control Example des
  Serial HOWTO wird ein Beispiel behandelt, in dem dies notwendig ist.
  Aber wenn Sie die bertragungsrate zwischen Modem und Computer
  (Geschwindigkeit des seriellen Ports) nicht hoch genug eingestellt
  haben, dann ist es notwendig, den Datenfluss vom Modem zum Computer zu
  reduzieren.  Um dies zu erreichen muss der ber die Telefonleitung
  hereinkommende Datenfluss unterbrochen werden knnen. Ihr Modem muss
  das andere Modem veranlassen, weiter Daten zu senden. Siehe ``Modem-
  zu-Modem Flusskontrolle''


  2.9.2.  Hardware und Software Flusskontrolle

  Falls mglich, ist es das Beste, Hardware-Flusskontrolle zu verwenden;
  dabei werden zwei der Modem-Kontrollleitungen verwendet, um das Start-
  und Stop-Signal zu bermitteln. Software-Flusskontrolle nutzt die
  normalen Sende- und Empfangsleitungen, um die Start- und Stop-Signale
  zu bertragen.  Fr diesen Zweck werden die ASCII-Kontrollzeichen DC1
  (Start) und DC3 (Stop) verwendet. Sie werden einfach in den normalen
  Datenstrom eingefgt.  Software-Flusskontrolle ist nicht nur langsamer
  hinsichtlich der Reaktionszeit, auch die bertragung binrer Daten ist
  nicht mglich, ohne dass besondere Vorsichtsmaregeln getroffen
  werden. Weil beliebige binre Daten sehr wahrscheinlich die Bitmuster
  DC1 und DC3 enthalten, muss mit besonderen Mitteln zwischen einem
  DC3-Zeichen, das das Flusskontroll-Zeichen Stop bedeutet und einem
  DC3-Zeichen, das Teil der binren Daten ist, unterschieden werden. Das
  gleiche gilt fr DC1. Eine funktionierende Software-Flusskontrolle fr
  binre Daten setzt sowohl Modem- (Hardware) als auch entsprechende
  Software-Untersttzung voraus.


  2.9.3.  Anzeichen fehlender Flusskontrolle

  Die Theorie der Flusskontrolle zu verstehen, kann von praktischem
  Nutzen sein. Z.B. habe ich mein Modem fr einen Internet-Zugang
  verwendet, und alles schien gut zu funktionieren. Nach einigen Monaten
  versuchte ich, groe Dateien von meinem PC zum ISP (Internet Service
  Provider) zu bertragen, dabei kam es zu vielen
  bertragungswiederholungen und Fehlern.  Das Empfangen von Dateien aus
  der anderen Richtung (von meinem ISP zu mir) funktionierte
  einwandfrei. Es stellte sich heraus, dass das Problem ein
  Hardwarefehler in meinem Modem war, der dazu fhrte, dass die
  Flusskontrolle deaktiviert wurde. Der Buffer des Modems lief ber,
  wenn groe Dateien gesendet wurden, weil nie ein Stop-Signal zum
  Computer gesendet wurde, um den Datenfluss zum Modem zu unterbrechen.
  Fr die entgegengesetzte bertragungsrichtung vom Modem zum Computer
  trat kein Problem auf, weil die Endgertegeschwindigkeit (z.B.
  115,2 kBit/s) immer hher war als die bertragungsgeschwindigkeit auf
  der Telefonleitung. Die Lsung des Problems bestand darin, ein
  Kommando zur Aktivierung der Flusskontrolle am Ende des Modem-
  Initialisierungsstrings anzuhngen.


  2.9.4.  Modem-Modem Flusskontrolle

  Dies ist die Flusskontrolle fr die Daten, die zwei Modems ber die
  Telefonleitung austauschen. In der Praxis gibt es diese Flusskontrolle
  nur, wenn die Fehlerkorrektur eingeschaltet ist. Es ist aber
  tatschlich mglich, Software-Flusskontrolle zwischen zwei Modems auch
  ohne Fehlerkorrektur einzuschalten, dies kann aber das Senden von
  binren Daten stren und daher wird sie selten verwendet.


  2.10.  Weg des Datenflusses; Puffer

  Obwohl viel von diesem Thema schon erklrt wurde, z.B. Flusskontrolle,
  ein Paar 16 Byte Puffer der Hardware des seriellen Ports und ein Paar
  von greren Puffern innerhalb des Modems, so gibt es doch noch ein
  anderes Pufferpaar. Dies sind grere Puffer (z.B. 8 kByte) im
  Hauptspeicher, die so genannten Schnittstellenpuffer des seriellen
  Ports.  Wenn ein Anwendungsprogramm Bytes zum seriellen Port (und
  damit zum Modem) sendet, werden sie zuerst im Sendepuffer des
  seriellen Ports im Hauptspeicher zwischengespeichert.  Das Pufferpaar
  besteht aus diesem Sendepuffer und einem Empfangspuffer fr die
  entgegengesetzte Richtung des Datenstroms.

  Der Gertetreiber des seriellen Ports holt sich aus diesem Sendepuffer
  z.B.  16 Bytes, ein Byte nach dem anderen, und legt sie im 16 Byte
  Hardware-Sendepuffer zur bertragung ab. Wenn die Bytes erst einmal in
  diesem Sendepuffer gelandet sind, gibt es keine Mglichkeit mehr, ihr
  Versenden zu verhindern. Sie werden dann zum Modem bertragen, welches
  wiederum ber einen gengend groen Puffer (z.B. 1 kByte) verfgt.
  Wenn der Gertetreiber (durch die Flusskontrolle angefordert) den
  ausgehenden Datenfluss des Computers unterbricht, wird in Wirklichkeit
  nur der Datenstrom aus dem groen Sendepuffer des Hauptspeichers
  unterbrochen. Selbst nachdem dies geschehen ist und der Datenfluss zum
  Modem gestoppt wurde, kann ein Anwendungsprogramm weiterhin Daten in
  diesen 8k-Sendepuffer hineinschreiben bis er voll wird.

  Wenn dieser Puffer gefllt ist, kann das Anwendungsprogramm keine
  Daten mehr in diesen Puffer schreiben (der write()-Befehl in einem C-
  Programm blockiert) und das Anwendungsprogramm stoppt vorbergehend in
  seinem Ablauf und wartet, bis wieder ein wenig Speichplatz im Puffer
  verfgbar wird (synchrone Arbeitsweise).  Daher kann ein
  Flusskontroll-Stop Signal im Extremfall das Programm anhalten,
  welches die Bytes sendet. Obwohl dieses Programm steht, muss das nicht
  bedeuten, das auch der Computer steht. Andere Prozesse knnen die CPU
  Zeit beanspruchen, whrend er auf ein Start-Signal von der
  Flusskontrolle wartet.

  Die eben geschilderten Vorgnge wurden ein wenig vereinfacht
  dargestellt, da es fr das Anwendungsprogramm auch die Alternative
  gibt, etwas anderes zu tun, whrend es auf die write-Anweisung
  wartet (asynchrone Arbeitsweise).


  2.11.  Modem Befehle

  Befehle werden vom Kommunikationsprogramm ber die selben Leitungen an
  das Modem gesendet, die auch fr die bertragung von Daten genutzt
  werden. Die Befehle bestehen aus kurzen ASCII-Strings, z.B. AT&K3 um
  die Hardware-Flusskontrolle (RTS/CTS) zwischen Computer und Modem zu
  aktivieren, oder ATDT5393401 um die Nummer 5393401 anzuwhlen.
  Beachten Sie, dass alle Befehle mit AT beginnen. Einige Befehle, wie
  z.B. der Befehl zum Einschalten der Flusskontrolle, helfen dabei, das
  Modem zu konfigurieren. Andere Befehle wie z.B. der Whlbefehl
  bewirken, dass tatschlich etwas passiert. Es gibt etwa 100
  verschiedene mglich Befehle.  Wenn Ihr Kommunikationsprogramm
  startet, sendet es zuerst einen Initialisierungsbefehl an das Modem,
  der aus mehreren AT-Befehlen bestehen kann, um es richtig
  einzustellen. Alle Befehle werden ber die gewhnlichen Datenleitungen
  gesendet, bevor das Modem whlt oder einen Anruf erhlt.

  Wenn das Modem mit dem anderen Modem verbunden ist (Online Modus),
  wird alles, was vom Computer zum Modem gesendet wird, direkt zum
  anderen Modem bertragen und vom Modem nicht als Befehl interpretiert.
  Es gibt eine Mglichkeit, diesen Modus zu verlassen und zurck in den
  Kommandomodus zurckzukehren, in dem alles, was an das Modem gesendet
  wird, als Befehl interpretiert wird.  Der Computer sendet einfach die
  Zeichenfolge +++, wobei innerhalb eines bestimmten Zeitfensters vor
  und nach dem Senden dieses Befehls keine anderen Daten bertragen
  werden. Wenn das Zeitfenster eingehalten wird, kehrt das Modem in den
  Befehlsmodus zurck. Eine andere Mglichkeit dies zu erreichen ist ein
  Signal auf einer bestimmten Modemsteuerleitung.

  Es gibt eine Reihe von Tabellen dieser Modem-Befehle im Internet. Der
  Abschnitt ``Seiten im Internet'' enthlt Links zu einigen solchen WWW
  Adressen. Verschiedene Modem-Modelle und -marken verwenden nicht genau
  den gleichen Satz von Befehlen. Was bei einem Modem funktioniert, kann
  bei einem anderem Modem versagen. Einige gemeinsame Befehle (es wird
  nicht garantiert, dass sie fr alle Modems funktionieren) sind in
  diesem HOWTO im Abschnitt ``Modem  Konfiguration'' aufgelistet.


  2.12.  Gertetreibersoftware fr den seriellen Port

  Der Gertetreiber fr den seriellen Port ist die Software, die die
  Hardware des seriellen Ports anspricht. Der Linux Kernel bedient sich
  der Funktionen der Treibersoftware, um die serielle Schnittstelle zu
  nutzen. Dieser Gertetreiber wird nun als ladbares Modul angeboten.
  Das Modul wird normalerweise vom Kernel automatisch geladen, wenn es
  bentigt wird. Kernel ab der Version 2.2 untersttzen dies. In lteren
  Kernel-Versionen musste der Prozess kerneld laufen, um Module bei
  Bedarf automatisch zu laden. Anderenfalls musste das Modul explizit im
  Verzeichnis /etc/modules zu finden sein. Bevor unter Linux Module
  verwendet wurden, waren Gertetreiber blicherweise Teil des Kernels
  (monolithischer Kernel).
  Wenn das Modul mit dem seriellen Gertetreiber geladen wird, werden
  Informationen ber die vorhandenen seriellen Ports auf dem Bildschirm
  angezeigt (oft mit einem falschen IRQ). Wenn aber mithilfe von
  setserial dem Gertetreiber der hoffentlich richtige Wert fr den IRQ
  mitgeteilt wurde, sollten Sie eine weitere Bildschirmausgabe mit den
  richtigen Werten sehen. Der Abschnitt ``Was ist setserial'' enthlt
  mehr Informationen ber den setserial-Befehl.

  Man kann den Treiber modifizieren, wenn man den Kernel-Quellcode
  ndert.  Vieles, was den seriellen Treiber betrifft, findet sich in
  der Datei serial.c. Informationen ber die Entwicklung von Programmen
  fr den seriellen Port gibt das Serial Programming HOWTO.


  3.  Konfiguration von Modems (und des seriellen Ports)

  Wenn Sie ein Modem nur unter MS Windows/DOS nutzen mchten, knnen Sie
  fast jedes Modem verwenden und es wird funktionieren. Mit einem Linux
  PC ist es normalerweise nicht so einfach, auer Sie verwenden ein
  externes Modem. Alle externen Modems sollten funktionieren; selbst
  wenn es Plug-and-Play-Modems sind. Aber die meisten neueren internen
  Modems sind Plug-and-Play-Modems (PnP) und verfgen ber serielle PnP-
  Ports.  Sie mssen vielleicht das Linux-Programm isapnp verwenden, um
  diese seriellen PnP-Ports zu konfigurieren. Mehr Informationen dazu
  finden sie im Plug and Play HOWTO.


  3.1.  bersicht ber die Konfiguration

  Weil jedes Modem ber einen zugeordneten seriellen Port verfgt,
  besteht die Konfiguration eines Modem aus zwei Teilen:


    Der Konfiguration des Modems; dies wird vom Kommunikationsprogramm
     bernommen.

    Der Konfiguration des zugeordneten seriellen Ports; dies wird nur
     teilweise vom Kommunikationsprogramm durchgefhrt.

  Die meisten der Konfigurationsschritte (aber nicht notwendigerweise
  auch die meiste Arbeit) werden vom Kommunikationsprogramm erledigt,
  welches Sie zusammen mit Ihrem Modem einsetzen: z.B. von minicom,
  seyon, oder vom PPP Daemon (welcher normalerweise notwendig ist, um
  eine Internet Verbindung aufzubauen). Wenn Sie Ihr Modem verwenden, um
  einen Dial-In-Zugang zur Verfgung zu stellen, wird Sie das Programm
  getty, welches dem externen Benutzer einen login-Prompt zur Verfgung
  stellt, bei der Konfiguration untersttzen. Um also das Modem und
  groe Teile des seriellen Ports zu konfigurieren, mssen Sie das
  Kommunikationsprogramm (oder den PPP Daemon oder getty) richtig
  einstellen.

  Bitte beachten Sie jedoch, dass nicht die gesamte Konfiguration des
  seriellen Ports vom Kommunikationsprogramm (oder getty bernommen
  wird. Wie der verbleibende Rest zu konfigurieren ist, ist einfach
  festzustellen (aber hufig nicht so einfach durchzufhren). Die Arbeit
  besteht hauptschlich darin, die I/O-Adresse und den IRQ einzustellen.
  Plug-and-Play knnte dies vllig fr Sie bernehmen. Aber es gibt ein
  schwerwiegendes Problem: Linux (Stand: Anfang des Jahres 1999)
  untersttzt Plug-and-Play nicht besonders gut. Dies kann fr Sie ein
  schwieriges Problem bedeuten. Der nchste Abschnitt behandelt die
  Konfiguration des seriellen Ports.





  4.  Konfiguration des seriellen Ports

  4.1.  berblick ber die Konfiguration

  In vielen Fllen wird die Konfiguration automatisch passieren und Sie
  selbst mssen gar nichts tun. Aber manchmal mssen Sie etwas
  einstellen oder Sie mchten die aktuellen Einstellungen feststellen.
  In diesem Fall mssen Sie mit den beiden Teilen der Konfiguration des
  seriellen Ports unter Linux vertraut sein:

  Der erste Teil (Low-Level-Konfiguration) weist dem Port eine I/O-
  Adresse, einen IRQ und einen Namen (z.B. ttyS2) zu. Die I/O-Adresse
  und der IRQ mssen sowohl in der Hardware eingestellt als auch dem
  Gertetreiber mitgeteilt werden. Im Folgenden werden wir dies kurz als
  io-irq-Konfiguration bezeichnen. Der setserial-Befehl wird
  verwendet, um die Werte dem Gertetreiber mitzuteilen. ber PnP,
  Jumper usw. werden die Hardware-Einstellungen festgelegt.  Die
  Einzelheiten hierzu werden spter beschrieben. Wenn Sie diese Werte
  einstellen mssen, aber einige wichtige Details nicht verstehen,
  knnen Sie leicht in Schwierigkeiten geraten.

  Der zweite Teil (High-Level-Konfiguration) weist dem Port eine
  Geschwindigkeit (z.B. 38,4 kBit/s) zu, schaltet die Flusskontrolle ein
  usw. Dies wird hufig von Kommunikationsprogrammen wie z.B. pppd,
  minicom oder getty bernommen. Diese High-Level-Konfiguration kann
  auch mithilfe des stty-Befehls durchgefhrt werden. stty ist auch
  ntzlich, um den momentanen Status zu ermitteln, falls Probleme
  auftreten oder das Terminal-Interface auf den Normalzustand
  zurckzusetzen, indem Sie z.B.



       stty sane




  eingeben.Siehe auch den Abschnitt Stty im Serial HOWTO.  Wenn Linux
  gestartet wird, so versucht das System herauszufinden, welche
  seriellen Ports existieren und fr diese Ports wird eine Low-Level-
  Konfiguration durchgefhrt. Was genau passiert, hngt vom BIOS, der
  Hardware, der Linux Distribution usw. ab. Wenn die serielle
  Schnittstelle funktioniert, gibt es fr Sie evtl. keinen Grund, irgend
  etwas zu konfigurieren. Anwendungsprogramme fhren die High-Level-
  Konfiguration oft selbstndig durch, aber Sie mssen eventuell zuvor
  einige Informationen eingeben, um dies zu ermglichen. Mit seriellen
  PnP-Ports, wie sie oft in internen Modems enthalten sind, ist die
  Situation noch komplexer geworden. In folgenden Fllen mssen Sie eine
  Low-Level-Konfiguration durchfhren (d.h. IRQ und I/O-Adresse
  einstellen):


    Sie mchten mehr als zwei serielle Schnittstellen verwenden.

    Sie mchten eine neue serielle Schnittstelle installieren (z.B.
     ein internes Modem).

    Es treten bei einem (oder mehreren) seriellen Ports Probleme auf.

  Ab der Kernelversion 2.2 knnen Sie mehr als zwei serielle Ports
  verwenden, ohne eine Low-Level-Konfiguration durchfhren zu mssen,
  indem mehrere serielle Ports sich einen Interrupt teilen (Interrupt
  Sharing). Aber dies muss nicht einfacher sein als die Low-Level-
  Konfiguration.  Siehe auch ``Gemeinsame Verwendung von Interrupts ab
  Kernel 2.2''.

  Die Low-Level-Konfiguration (d.h. das Einstellen des IRQ und der I/O-
  Adresse) verursacht offensichtlich mehr Probleme als die High-Level-
  Konfiguration, obwohl sie meist automatisch abluft, ohne dass man
  etwas tun mte. Deshalb beschftigt sich der berwiegende Teil dieses
  Abschnitts mit diesem Thema. Der serielle Port wird u.U.  berhaupt
  nicht funktionieren, solange der Gertetreiber nicht die richtigen
  Werte fr den IRQ und die I/O-Adresse wei. Es ist sehr
  wahrscheinlich, dass er nichteinmal von Linux gefunden wird. Selbst
  wenn der Port gefunden wird, kann es sein, dass er nur sehr langsam
  arbeitet, falls der IRQ falsch eingestellt ist. Siehe auch ``Text
  erscheint auf dem Bildschirm nur langsam und nach langen
  Wartezeiten''.

  In der Wintel-Welt werden die I/O-Adresse und der IRQ als Ressourcen
  bezeichnet, daher konfigurieren wir bestimmte Ressourcen. Zur
  Wiederholung: die Low-Level-Konfiguration besteht daraus, zwei Werte
  (fr den IRQ und die I/O-Adresse) an zwei Orten abzulegen:


  1. im Gertetreiber (hufig, indem beim Booten der setserial-Befehl
     ausgefhrt wird

  2. in den Registern der Hardware des seriellen Ports

  Zur Kontrolle knnen Sie die Meldungen verfolgen, die whrend des
  Bootvorgangs am Bildschirm ausgegeben werden. Normalerweise sind die
  Angaben richtig. Aber wenn Sie Probleme haben, ist es sehr
  wahrscheinlich, dass einige dieser Meldungen nicht die wahre
  Konfiguration der Hardware angeben (und das kann man auch nicht
  erwarten); siehe ``I/O-Adresse und IRQ: Meldungen beim Booten''.


  4.2.  Hufige Fehler bei der Low-Level-Konfiguration

  Hier ist eine Auflistung von hufigen Fehlern:


     setserial-Befehl
        Er wird aufgerufen (ohne die Option autoconfig) und es wird
        angenommen, dass dabei die Werte aus der Hardware gelesen
        wurden, was aber nicht der Fall ist.


     setserial-Meldungen
        Man geht flschlicherweise davon aus, dass die beim Booten
        angzeigten Meldungen angeben, wie die Hardware wirklich
        konfiguriert ist.


     /proc/interrupts
        Wenn der serielle Port nicht verwendet wird, werden seine
        Interrupts hier nicht angezeigt, und flschlicherweise wird
        angenommen, dass der serielle Port nicht gefunden werden kann
        (oder kein IRQ eingestellt ist).


     /proc/ioports
        Es wird hufig angenommen, dass hier die Hardware-Konfiguration
        angezeigt wird, whrend in Wirklichkeit etwa die gleichen,
        eventuell fehlerhaften Informationen angezeigt werden wie beim
        setserial-Befehl.





  4.3.  I/O-Adressen und IRQ: Meldungen beim Booten

  In vielen Fllen wird whrend des Bootens eine automatische aber nicht
  immer richtige Low-Level-Konfiguration der seriellen Ports
  durchgefhrt. Die Meldungen, die beim Booten auf den Bildschirm
  geschrieben werden, geben darber Aufschluss. Vernachlssigen Sie auch
  nicht die BIOS-Meldungen; sie erscheinen noch bevor Linux geladen
  wird. Meldungen, die nicht mehr auf dem Bildschirm sichtbar sind,
  knnen Sie mit der Tastenkombination Shift-Bild-nach-oben wieder
  zurckholen. Der Befehl dmesg kann verwendet werden, um jederzeit die
  Boot-Meldungen anzuzeigen, hufig erscheinen aber wichtige Meldungen
  nicht. Das Folgende ist ein Beispiel der Boot-Meldungen (Stand: Mitte
  1999). Beachten Sie, dass ttyS00 das selbe bedeutet wie /dev/ttyS0.

  Zunchst sehen Sie, was von Linux erkannt wurde; aber der IRQ ist nur
  geraten:



       Serial driver version 4.27 with no serial options enabled
       ttyS00 at 0x03f8 (irq = 4) is a 16550A
       ttyS01 at 0x02f8 (irq = 3) is a 16550A
       ttyS02 at 0x03e8 (irq = 4) is a 16550A




  Etwas spter knnen Sie sehen, welche Werte abgespeichert wurden, aber
  sie sind ebenfalls nicht unbedingt richtig:



       Loading the saved-state of the serial devices...
       /dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A
       /dev/ttyS1 at 0x02f8 (irq = 3) is a 16550A
       /dev/ttyS2 at 0x03e8 (irq = 5) is a 16550A




  Beachten Sie, dass es hier einen Widerspruch gibt: die erste Meldung
  zeigt fr ttyS2 den IRQ=4 an, whrend die zweite Meldung fr diesen
  Wert IRQ=5 ausgibt. Vielleicht sehen Sie nur die erste Meldung.
  Meistens ist die letzte Meldung die richtige. Wenn Sie Schwierigkeiten
  haben, kann dies sehr verwirrend sein. Bevor Sie die detaillierten
  Erklrungen im Rest dieses Abschnittes durcharbeiten, ist es
  vielleicht das Beste, Sie probieren Ihren seriellen Port einfach aus.
  Wenn alles funktioniert, ist es nicht unbedingt notwendig, hier
  weiterzulesen.

  Die zweite Meldung ist die Ausgabe des setserial-Befehls, der beim
  Booten ausgefhrt wird. Sie zeigt an, was der Gertetreiber fr die
  korrekte Konfiguration hlt. Aber auch dies kann falsch sein. Z.B.
  knnte IRQ=8 in der Hardware eingestellt sein (in diesem Fall sind
  beide Meldungen falsch). Der IRQ=5 wird angezeigt, weil irgend jemand
  flschlicherweise diesen Wert in einer Konfigurationsdatei (o..)
  angegeben hat. Die Tatsache, dass Linux manchmal von falschen Werten
  fr den IRQ ausgeht liegt darin begrndet, dass Linux diese IRQs nicht
  ausprobiert. Linux geht einfach von den Standardwerten aus (erste
  Meldung) oder akzeptiert die Werte, die Sie whrend der Konfiguration
  angegeben haben (zweite Meldung). Keiner der beiden Angaben ist
  notwendigerweise richtig. Wenn der serielle Gertetreiber mit einem
  falschen IRQ arbeitet, ist der serielle Port sehr langsam oder
  funktioniert evtl. berhaupt nicht.


  Die erste Meldung ist das Ergebnis des Versuchs, die seriellen Ports
  anzusprechen. Wenn hier ein Port auftaucht, heit das, dass er
  existiert, aber der angegebene IRQ kann falsch sein. Linux berprft
  IRQs nicht, weil das nicht sehr sicher ist, sondern geht einfach von
  den Standardwerten aus. Sie knnen sie mit dem setserial-Befehl und
  der autoconfig-Option manuell prfen, aber auch hier gibt es keine
  Garantie fr die Richtigkeit der Werte.

  Die Hardwareeinstellung wird durch die als erstes sichtbaren BIOS-
  Meldungen angezeigt. Wenn Sie ber einen seriellen PnP-Port verfgen,
  ist es mglich, dass das Programm isapnp aufgerufen wird und diese
  Einstellungen gendert werden. Beachten Sie hierzu die Meldungen,
  nachdem Linux gestartet wurde. Die letzte Meldung des seriellen Ports
  im obigen Beispiel sollte mit den BIOS-Meldungen bereinstimmen. Wenn
  dies nicht der Fall ist, dann mssen Sie entweder die Hardware-
  Einstellungen ndern, oder Sie verwenden setserial, um dem Treiber die
  tatschliche Hardwareeinstellung mitzuteilen.

  Wenn Sie serielle PnP-Ports verwenden, wird Linux ausserdem diese
  Ports nicht finden, solange der IRQ und die I/O-Adresse der Hardware
  nicht durch die PnP-Software eingestellt wurden. Dies ist hufig der
  Grund, dass die Meldungen beim Start keinen existierenden seriellen
  Port anzeigen.  Eventuell kann die PC Hardware (ein PnP BIOS) diese
  Low-Level-Konfiguration automatisch vornehmen. Das Vorgehen fr die
  PnP-Konfiguration wird spter erklrt.


  4.4.

  Wie ist die richtige I/O-Adresse und der richtige IRQ fr
  meinen seriellen Port?

  Der letzte Abschnitt zeigte, wie man diese Informationen ermitteln
  kann, indem man die Meldungen beim Start des Systems auswertet. Eine
  andere berschrift fr diesen Abschnitt knnte auch heien: Andere
  Wege, um die I/O-Adresse und den IRQ herauszufinden.  Falls Ihnen die
  Meldungen beim Start ausreichend Information liefern, brauchen Sie
  diesen Abschnitt nicht unbedingt zu lesen.

  Es gibt zwei mgliche Antworten auf die Frage Wie ist die richtige
  I/O-Adresse und der richtige IRQ fr meinen seriellen Port?:


    Die Werte, die aus Sicht des Gertetreibers gesetzt wurden (dies
     wird durch setserial gesetzt und angezeigt).

    Die Werte, die tatschlich in der Hardware eingestellt sind.

  Beide Werte sollten bereinstimmen. Wenn Sie Schwierigkeiten haben
  (eingeschlossen Kommunikationsprogramme, die nicht kommunizieren
  knnen), kann dies bedeuten, dass diese beiden Einstellungen nicht
  bereinstimmen. Dies heit mit anderen Worten, dass der Treiber
  falsche Informationen ber die physikalisch vorhandene Hardware hat.
  Wenn der Gertetreiber von einer falschen I/O-Adresse ausgeht, wird er
  versuchen, Daten an einen nicht vorhandenen seriellen Port zu senden,
  oder gar an ein anderes Gert als an einen seriellen Port. Wenn die
  Treibersoftware auf einen falschen IRQ hrt, wird sie keine
  Unterbrechungsanforderungen vom seriellen Port empfangen, was zu einem
  berlauf des Buffers im seriellen Port und zu sehr langen
  Antwortzeiten fhren kann (siehe auch ``Text erscheint auf dem
  Bildschirm erst nach langen Verzgerungen''.  Falls der Treiber von
  einem anderen als dem installierten UART Typ ausgeht, knnen sich
  ebenfalls Probleme ergeben. Um festzustellen, ob beide I/O-IRQ
  Wertepaare identisch sind, mssen Sie Antworten auf die Fragen der
  nchsten beiden Abschnitte finden.

  4.4.1.  Von welchen Werten geht der Gertetreiber aus?

  Das ist leicht herauszufinden. Sehen Sie sich einfach die Meldungen
  beim Systemstart an oder verwenden Sie folgenden Befehl:



       setserial -g /dev/ttyS*




  Wenn alles funktioniert, stimmen die so ermittelten Werte
  hchstwahrscheinlich mit den in der Hardware konfigurierten Werten
  berein. Es gibt auch einige andere Mglichkeiten, diese Informationen
  zu erhalten, indem Sie sich bestimmte Dateien im /proc-Verzeichnis
  ansehen. Wichtig ist es aber, immer daran zu denken, dass nur die
  Werte angezeigt werden, von denen der Gertetreiber ausgeht. Manche
  sehen sich bestimmte Dateien im /proc-Verzeichnis an und denken, dass
  das, was sie sehen, auch in der Hardware eingestellt ist, dies muss
  aber nicht notwendigerweise so sein.

  /proc/ioports zeigt die I/O-Adressen, die die Treiber verwenden.
  /proc/interrupts zeigt die IRQs, die von Treibern laufender Prozesse
  (welche eine Gertedatei geffnet haben) verwendet werden.  Beachten
  Sie, dass Sie in beiden o.g. Fllen nur sehen, was der Treiber denkt,
  und nicht unbedingt, was wirklich in der Hardware eingestellt ist.
  /proc/interrupts zeigt auch, wie oft die Interrupts fr ein bestimmtes
  Gert bereits ausgelst wurden (hufig viele tausend Male). Dies kann
  Hinweise zur Fehlersuche geben, denn wenn Sie eine groe Zahl von
  bereits ausgelsten Interrupts sehen, bedeutet dies, dass es irgendwo
  auch Hardware gibt, welche diesen Interrupt verwendet.  Wenn nur
  einige wenige Interrupts angezeigt werden, bedeutet das nicht, dass
  diese Interrupts wirklich durch einen seriellen Port erzeugt wurden.
  Wenn Sie also fast keine Interrupts fr einen Port feststellen, den
  Sie versuchen zu verwenden, knnte dieser Interrupt nicht auf der
  Hardware eingestellt sein und dies bedeutet, dass der Treiber einen
  falschen Interrupt verwendet. Um sich den Inhalt von /proc/interrupts
  anzusehen, whrend ein Programm luft, das die zu berprfenden
  Interrupts verwendet (wie z.B. minicom), sollten Sie versuchen, eine
  Shell auszufhren, ohne das Programm zu verlassen (z.B. auf einer
  anderen virtuellen Konsole oder in einem zweiten xterm-Fenster).


  4.4.2.  Wie ist die Hardware des seriellen Ports eingestellt?

  Wie knnen Sie herausfinden, auf welche I/O-Adressen und auf welchen
  IRQ die Hardware tatschlich eingestellt sind? Vielleicht erhalten Sie
  aus den BIOS Meldungen einige Information, bevor Linux startet.
  Verwenden Sie die Shift-PageUp-Taste, um rckwrts durch die
  Meldungen zu blttern, und sehen sie sich die allerersten Meldungen
  an, die vom BIOS stammen, als Linux noch nicht gestartet war. Die
  Werte knnen durch setserial nicht verndert werden, wohl aber durch
  isapnp oder durch pciutils.

  Eine ziemlich grobe Methode besteht darin, setserial mit der
  autoconfig-Option zu verwenden und eine angenommene Adresse einfach
  auszuprobieren (siehe ``Was ist setserial?''). Bei einem seriellen
  PCI-Port knnen Sie sich den Inhalt von /proc/pci oder
  /proc/bus/pci/devices ansehen. Falls Ihr seriellen Port ein Plug-and-
  Play Port ist, finden Sie weitere Informationen in den nchsten beiden
  Unterabschnitten.

  Verfgt der Port ber Jumper, gibt die Stellung der Jumper die
  Konfiguration wieder. Wenn es sich nicht um einen PnP-Port handelt,
  der Port aber durch ein DOS-Programm konfiguriert wurde, dann sind die
  Einstellungen wirksam, die mit diesem Programm gesetzt wurden.


  4.4.3.  Wie ist meine PnP Hardware eingestellt?

  PnP Ports speichern ihre Einstellungen nicht innerhalb der Hardware,
  wenn der Rechner abgeschaltet wird. Ports mit Jumpern verhalten sich
  genau entgegengesetzt, denn hier bleiben die Einstellungen auch im
  abgeschalteten Zustand erhalten. Ein ISA PnP-Port kann sich in einem
  Zustand befinden, in dem er berhaupt keine I/O-Adresse oder IRQ hat
  und daher deaktiviert ist. Es sollte jedoch immer noch mglich sein,
  den Port mithilfe des Programms pnpdump (Teil der isapnptools) zu
  finden.  Wenn Sie die Option --dumpregs verwenden, sollte die
  tatschliche I/O-Adresse und IRQ, die im Port eingestellt sind,
  angezeigt werden.

  Bei PnP Ports macht es nicht viel Sinn, nachzusehen, wie sie unter
  DOS/Windows konfiguriert sind. Windows speichert die Konfiguration in
  der Registry, die von Linux nicht verwendet wird. Falls Sie vom PnP
  BIOS die Konfiguration automatisch erstellen lassen, wenn Sie Linux
  starten (und dabei im BIOS eingestellt haben, dass Sie kein PnP
  Betriebssystem haben), dann sollte Linux die Konfiguration verwenden,
  die im nicht flchtigen BIOS Speicher enthalten ist.


  4.5.  Die Wahl des seriellen IRQs

  Wenn Sie echtes PnP verwenden, wobei entweder das Betriebssystem oder
  ein PnP BIOS alle Gerte konfiguriert, brauchen Sie keine IRQs
  einzustellen.  PnP stellt die optimalen Einstellungen fest und weist
  diese Werte zu.  Aber wenn Sie Linux-Werkzeuge fr PnP verwenden
  (isapnp und pcitools), dann mssen Sie explizit Werte auswhlen. Wenn
  Sie bereits wissen, welchen IRQ sie verwenden mchten, knnen Sie
  diesen Abschnitt berspringen, es sei denn, Sie mchten wissen, dass
  der IRQ 0 eine besondere Bedeutung hat.


  4.5.1.  IRQ 0 ist kein IRQ

  Whrend der IRQ 0 dem Hardware Timer zugeordnet ist, hat dieser Wert
  fr den seriellen Port eine spezielle Bedeutung, wenn er mit setserial
  eingestellt wird. Damit wird dem Treiber mitgeteilt, dass es keinen
  Interrupt fr den Port gibt und der Treiber wird Polling verwenden,
  d.h. den Port selbstndig in regelmigen Zeitabschnitten nach neuen
  Daten abfragen. Das ist nicht sehr effizient, kann aber verwendet
  werden, wenn es einen Interrupt-Konflikt oder einen falsch
  eingestellten Interrupt gibt. Der Vorteil dieser Vorgehensweise liegt
  darin, dass Sie nicht zu wissen brauchen, auf welchen Interrupt die
  Hardware eingestellt ist.  Sie sollte nur als Notlsung verwendet
  werden, bis Sie einen richtigen Interrupt gefunden haben, den Sie
  verwenden knnen.


  4.5.2.  Gemeinsame Verwendung von Interrupts ab Kernel 2.2

  Im allgemeinen gilt, dass jedes Gert seinen eigenen IRQ verwenden
  sollte, eine gemeinsame Nutzung sollte vermieden werden. In einigen
  Fllen ist dies aber erlaubt, z.B. bei Verwendung der meisten Multi-
  Port Karten.  Aber selbst wenn dies mglich ist, ist es nicht sehr
  effizient, denn jedesmal, wenn ein gemeinsam verwendeter Interrupt
  auftritt, muss zunchst festgestellt werden, welches Gert ihn
  ausgelst hat. Falls mglich, sollte also jedem Gert ein eigener
  Interrupt zugeordnet werden.

  Bei lteren Kernelversionen konnten serielle IRQs nur bei den meisten
  Multi-Port Karten gemeinsam genutzt werden. Ab der Kernelversion 2.2
  knnen serielle IRQs in manchen Fllen auch gemeinsam von allen
  seriellen Ports verwendet werden. Damit die gemeinsame Nutzung
  funktioniert, muss der Kernel mit der Option CONFIG_SERIAL_SHARE_IRQ
  bersetzt worden sein, und die Hardware der seriellen Ports muss die
  gemeinsame Nutzung untersttzen.  Selbst wenn Sie also einen Kernel ab
  Version 2.2 einsetzen, ist es das Beste, gemeinsam verwendete
  Interrupts zu vermeiden.


  4.5.3.  Welchen Interrupt soll man whlen?

  Die Hardware der seriellen Ports lt sich hufig nur auf eine kleine
  Auswahl von mglichen IRQs einstellen. IRQ Konflikte sollen auf jeden
  Fall vermieden werden. Ihr PC wird blicherweise so eingestellt sein,
  dass ttyS0 und ttyS2 auf IRQ 4 und ttyS1 und ttyS3 auf IRQ 3 liegen.
  Ein Blick in /proc/interrupts zeigt, welche IRQs von den gerade
  laufenden Programmen verwendet werden. Sie werden wahrscheinlich
  keinen dieser IRQs verwenden wollen.  Bevor IRQ 5 fr Soundkarten
  genutzt wurde, wurde er oft fr serielle Ports verwendet.

  Das folgende Beispiel zeigt, wie Greg (Autor des Serial HOWTO) die
  Interrupts in /etc/rc.d/rc.serial gewhlt hat. rc.serial ist ein
  Shellskript, das beim Start aufgerufen wird (es kann evtl. auch einen
  anderen Namen haben oder in einem anderen Verzeichnis stehen). Bei
  neueren setserial-Versionen (ab 2.15) werden die IRQs nicht mehr auf
  diese Art eingestellt, aber dieses Beispiel soll die Wahl der IRQs
  zeigen:



       /sbin/setserial /dev/ttyS0 irq 3        # serielle Maus
       /sbin/setserial /dev/ttyS1 irq 4        # Wyse Terminal
       /sbin/setserial /dev/ttyS2 irq 5        # Zoom Modem
       /sbin/setserial /dev/ttyS3 irq 9        # USR Modem




  Standard IRQ Zuordnungen:



       IRQ  0    Systemtaktgeber
       IRQ  1    Tastatur
       IRQ  2    programmierbarer Interrupt Controller
       IRQ  3    serielle Schnittstelle ttyS1
       IRQ  4    serielle Schnittstelle ttyS0
       IRQ  5    Soundkarte oder paralleler Druckerport 2
       IRQ  6    Diskettenlaufwerk
       IRQ  7    paralleler Druckerport 1
       IRQ  8    Echtzeitsystemuhr
       IRQ  9    lst IRQ 2 aus
       IRQ 10    frei
       IRQ 11    frei
       IRQ 12    PS/2 Mausanschluss
       IRQ 13    mathematischer Koprozessor
       IRQ 14    primrer IDE Kanal
       IRQ 15    sekundrer IDE Kanal





  Die Lsung fr die Auswahl der IRQs gibt es nicht. Aber Sie sollten
  sicherstellen, dass der serielle IRQ nicht von der Hauptplatine oder
  anderen Karten verwendet wird. Die IRQs 2, 3, 4, 5, 7, 10, 11, 12 oder
  15 sind mgliche Kandidaten. Beachten Sie, dass IRQ 2 und IRQ 9
  identisch sind. Sie knnen diesen Interrupt 2 oder 9 nennen, der
  serielle Gertetreiber versteht beide Namen. Wenn Sie eine sehr alte
  serielle Karte einsetzen, kann es sein, dass Sie IRQs ab 8 nicht
  verwenden knnen.

  Die IRQs 1, 6, 8, 13 oder 14 sollten Sie niemals verwenden. Diese IRQs
  werden von der Hauptplatine verwendet. Nach Abschluss der
  Konfiguration sollten Sie /proc/interrupts berprfen, whrend die
  Programme aktiv sind, die die Interrupts nutzen. So knnen Sie
  Konflikte erkennen.


  4.6.  Die Wahl der Adressen - Grafikkarten-Konflikte mit ttyS3

  Die I/O-Adresse der Grafikkarte IBM 8514 (und hnliche) ist
  angeblich 0x?2e8, wobei ? fr 2, 4, 8 oder 9 steht. Dies kann mit der
  I/O-Adresse von ttyS3, 0x02e8, Konflikte ergeben, falls der serielle
  Port die fhrende Null der hexadezimalen Adresse ignoriert; dies
  sollte eigentlich nicht so sein, kommt aber hufig vor. Wenn Sie
  versuchen, ttyS3 mit dieser I/O-Adresse zu betreiben, knnte es also
  Schwierigkeiten geben.

  Falls mglich, sollten Sie Standard-Adressen verwenden. Die
  Adressangabe bezeichnet die erste Adresse eines 8 Bit langen Bereichs.
  Z.B. bedeutet 3f8 in Wirklichkeit den Bereich 3f8-3ff. Jedes serielle
  Gert (und ebenso andere Gertetypen, die I/O-Adressen verwenden)
  bentigt seinen eigenen eindeutigen Adressbereich. Es sollten keine
  berlappungen existieren.  Dies sind die Standardadressen fr die
  serielle Schnittstelle:



       ttyS0 Adresse 0x3f8
       ttyS1 Adresse 0x2f8
       ttyS2 Adresse 0x3e8
       ttyS3 Adresse 0x2e8





  4.7.

  Hardwarekonfiguration von I/O-Adressen und IRQs (i.a. fr PnP)

  Vergessen Sie nicht, auch den Gertetreiber mithilfe von setserial auf
  die entsprechenden Werte einzustellen, nachdem Sie die Hardware fertig
  konfiguriert haben. Bei normalen seriellen Schnittstellen (kein PnP)
  werden I/O-Adressen und IRQs entweder direkt auf der Karte durch
  kleine Steckbrcken, sog. Jumper, oder mithilfe eines DOS-Programms
  eingestellt. Der Rest dieses Abschnitts behandelt nur serielle PnP
  Ports. Hier ist eine Liste der Mglichkeiten, um serielle PnP Ports zu
  konfigurieren:


    Verwendung eines PnP BIOS Setup Mens (normalerweise nur bei
     externen Modems an ttyS0 (COM1) oder ttyS1 (COM2)).

    Automatische Konfiguration durch ein PnP BIOS, siehe ``Verwendung
     eines PnP BIOS zur I/O-IRQ Konfiguration''.

    Gar nichts ist zu tun, falls Sie sowohl einen seriellen PnP Port
     als auch ein PnP Linux System verwenden (siehe auch Plug-and-Play
     HOWTO).

    Verwendung von isapnp fr einen PnP Port (kein PCI-Bus).

    Verwendung von pciutils (pcitools) bei Einsatz eines PCI-Busses.

  I/O-Adressen und IRQs mssen durch PnP bei jedem Systemstart in den
  Hardware-Registern eingetragen werden, da PnP Hardware sich die Werte
  nicht selbstndig merkt, wenn das System abgeschaltet wird.  Eine
  einfache Mglichkeit, dies zu erreichen, ist, in einem PnP BIOS
  einzustellen, dass Sie nicht mit einem PnP Betriebssystem arbeiten.
  Das BIOS wird dann automatisch bei jedem Start die richtigen Werte
  einstellen. Dies kann aber Probleme mit Windows verursachen (Windows
  ist ein PnP Betriebssystem), wenn Windows unter einem BIOS gestartet
  wird, das davon ausgeht, dass Windows kein PnP Betriebssystem ist.
  Weitere Informationen hierber finden Sie im Plug-and-Play HOWTO.

  PnP wurde entwickelt, um die I/O-IRQ Konfiguration zu automatisieren,
  aber die Arbeit mit Linux wird damit (zumindest nach dem gegenwrtigen
  Stand der Entwicklung) nicht einfacher. Die Standard-Kernels  fr
  Linux untersttzen PnP nicht besonders gut. Wenn Sie einen Patch fr
  den Linux Kernel verwenden, um daraus ein PnP Betriebssystem zu
  erstellen, dann sollten, wie oben erwhnt, alle Einstellungen vom
  Betriebssystem vorgenommen werden. (Ein Patch ist ein kleines
  Programmpaket, welches den Quellcode vor dem Compilieren modifiziert,
  um Fehler zu beseitigen oder neue Funktionalitten zu ermglichen.)
  Aber wenn Sie andere Gerte als die serielle Schnittstelle auf diese
  Weise konfigurieren mchten, werden Sie feststellen, dass Sie manche
  Gertetreiber dennoch von Hand konfigurieren mssen, weil viele
  Treiber nicht fr ein PnP Linux geschrieben wurden. Wenn Sie
  isapnptools oder das BIOS verwenden, um eine PnP Konfiguration
  durchzufhren, werden dadurch nur die beiden Werte in die Hardware-
  Register des seriellen Ports eingetragen, und wahrscheinlich werden
  Sie dennoch setserial verwenden mssen.  Nichts davon ist einfach oder
  gut dokumentiert (Stand: Anfang 1999).  Weitere Informationen finden
  Sie im Plug-and-Play HOWTO und in den FAQs zu den isapnptools.


  4.7.1.

  Verwendung eines PnP BIOS zur I/O-IRQ Konfiguration

  Whrend die Verwendung eines PnP Betriebssystems oder der isapnptools
  in der mitgelieferten Dokumentation erlutert wird, ist dies nicht der
  Fall, wenn Sie ein PnP BIOS zur Konfiguration verwenden mchten. Nicht
  alle PnP BIOS Versionen untersttzen dies vollstndig. Das BIOS bietet
  normalerweise ein Men, um die ersten beiden seriellen Schnittstellen
  im CMOS zu konfigurieren. Hufig sind die Einstellmglichkeiten sehr
  begrenzt. Wenn in den Mens nichts anderes angeboten wird, werden die
  ersten beiden seriellen Ports lediglich auf die Standard I/O-Adressen
  und IRQs eingestellt (siehe ``Namen und Nummern von Devices am
  seriellen Port '').

  Ob Sie es nun mgen oder nicht, ein PnP BIOS wird die PnP-
  Konfiguration (I/O-IRQ) der Hardware beim Einschalten des PC
  durchfhren. Dies wird vielleicht nur zum Teil erledigt, und der Rest
  muss vom PnP Betriebssystem erledigt werden (das Sie vielleicht nicht
  haben). Oder das BIOS geht davon aus, dass Sie kein PnP Betriebssystem
  haben; in diesem Fall werden alle PnP Gerte vollstndig konfiguriert,
  nicht jedoch die Gertetreiber.  Das ist, was Sie wollen, aber es ist
  nicht immer einfach herauszufinden, was genau das PnP BIOS getan hat.

  Wenn Sie im BIOS einstellen, dass Sie kein PnP Betriebssystem
  verwenden, sollte das PnP BIOS alle seriellen PnP Ports konfigurieren,
  und nicht nur die ersten beiden. Wenn Sie MS Windows 9x auf dem selben
  PC installiert haben, knnte es mglich sein, dass das BIOS die I/O-
  IRQ Werte im nicht-flchtigen Speicher gesichert hat, die fr den
  Betrieb von MS Windows bentigt werden.  Wenn Sie gerade die
  aktuelleste Version dieses HOWTOs lesen, lassen Sie mich wissen, ob
  Windows die Werte dort abspeichert. Falls ja, werden vom BIOS die
  gleichen Werte auch fr Linux verwendet. Wenn Sie herausfinden, welche
  Werte von Windows gewhlt wurden, sollten sie auch fr Linux gltig
  sein.

  Wenn Sie eine neue PnP Steckkarte einbauen, sollte das BIOS seine PnP
  Konfiguration entsprechend anpassen. Es kann sogar ntigenfalls die
  I/O-IRQ Zuordnungen der exisitierenden Gerte ndern, um Konflikte zu
  vermeiden. Zu diesem Zweck verwaltet das BIOS eine Liste der nicht-PnP
  Gerte und ihrer jeweiligen Konfiguration. Voraussetzung dafr ist
  allerdings, dass Sie im BIOS eingestellt haben, wie diese nicht-PnP
  Gerte konfiguriert sind. Eine Mglichkeit, dies im BIOS einzustellen
  ist z.B. die Verwendung des Programms ICU unter DOS/Windows.

  Aber wie knnen Sie herausfinden, was das BIOS genau getan hat, so
  dass Sie den Gertetreiber entsprechend konfigurieren knnen? Das BIOS
  selbst kann einige Informationen hierzu bereitstellen, entweder in den
  Einstellungsmens oder durch Bildschirmmeldungen beim Start des
  Rechners, siehe auch ``Wie ist die Hardware des seriellen Ports
  eingestellt?''


  4.8.  Verwendung von setserial mit den richtigen Werten

  Wenn die richtigen Werte fr I/O-Adresse und IRQ auf der Hardware
  eingestellt sind, mssen Sie auch sicherstellen, dass der setserial-
  Befehl bei jedem Systemstart aufgerufen wird. Siehe ``Systemstart-
  Konfiguration''.


  4.9.  Weitere Einstellungen

  4.9.1.  Hardware Flusskontrolle (RTS/CTS)

  Dieser Begriff wird im Abschnitt ``Flusskontrolle'' nher erlutert.
  Falls mglich, sollten Sie immer Hardware Flusskontrolle verwenden.
  Das Kommunikationsprogramm oder getty sollte eine Mglichkeit
  anbieten, Hardware Flusskontrolle einzustellen (und wenn Sie Glck
  haben, ist dies die Standardeinstellung). Dies muss sowohl im Modem
  (durch einen Initialisierungs-String oder standardmig) als auch im
  Gertetreiber eingestellt sein. Ihr Kommunikationsprogramm sollte
  beides richtig behandeln.

  Sollte dies nicht der Fall sein, mssen Sie die Hardware
  Flusskontrolle selbst einstellen. Beim Modem sollten Sie
  sicherstellen, dass diese Option entweder durch einen
  Initialisierungs-String oder standardmig aktiviert wird. Wenn Sie
  den Gertetreiber entsprechend konfigurieren wollen, sollte dies am
  besten durch eine Datei durchgefhrt werden, die beim Booten
  ausgefhrt wird. Siehe hierzu ``Systemstart-Konfiguration ''.  Sie
  mssen fr jeden seriellen Port, fr den die Hardware Flusskontrolle
  eingeschaltet werden soll, folgende Zeile einfgen:



       stty crtscts < /dev/ttyS2




  Wenn Sie berprfen wollen, ob die Flusskontrolle eingeschaltet ist,
  knnen Sie dies wie folgt tun: In einem Terminalprogramm wie minicom
  oder hnlichen geben Sie AT&V ein, um zu sehen, wie das Modem
  konfiguriert ist.  Suchen Sie nach &K3, dies bedeutet
  Flusskontrolle. Dann berprfen Sie, ob der Gertetreiber richtig
  eingestellt ist, indem Sie



       stty -a < /dev/ttyS2




  eingeben. Suchen Sie in der Ausgabe nach crtscts (ohne ein fhrendes
  Minuszeichen, dies wrde bedeuten, dass die Flusskontrolle
  ausgeschaltet ist).


  5.  Modem Konfiguration (ohne seriellen Port)

  5.1.  AT Befehle

  Genau wie der serielle Port, den das Modem verwendet, richtig
  konfiguriert werden muss, ist auch fr das Modem selbst eine
  Konfiguration notwendig.  Ein Modem wird durch Senden von AT Befehlen
  konfiguriert, die auf der selben seriellen Leitung bertragen werden,
  die auch fr die bertragung von Daten verwendet wird.

  Die meisten Modems verwenden einen AT Befehlssatz. Dies sind
  kryptische kurze ASCII Befehle, wobei alle Befehle mit den Buchstaben
  AT beginnen, z.B. ATZ&K3. In diesem Beispiel sind gleich zwei
  Befehle enthalten: Z und &K3. Leider gibt es viele verschiedene
  Variationen dieses AT Befehlssatzes, so dass ein Befehl, der bei einem
  Modem funktioniert, bei einem anderen Modem vielleicht nicht
  angewendet werden kann. Daher kann nicht garantiert werden, dass die
  AT Befehle, die in diesem Abschnitt vorgestellt werden, auch mit Ihrem
  Modem funktionieren. Ausserdem muss jeder Befehl mit einem CR
  abgeschlossen werden, damit das Modem den Befehl ausfhrt.

  Diese Befehlssequenzen werden entweder automatisch durch das
  Kommunikationsprogramm gesendet oder explizit durch Sie. Die meisten
  Kommunikationsprogramme verfgen ber eine Mglichkeit, um direkt
  Befehle an das Modem zu senden. Dies eignet sich sehr gut, um das
  Modem zu konfigurieren. Sie knnen das Modem z.B. anweisen, sich eine
  bestimmte Einstellung zu merken, selbst wenn zwischendurch die
  Stromversorgung abgeschaltet wurde.

  Wenn Sie ein Handbuch zu Ihrem Modem haben, knnen Sie wahrscheinlich
  alle AT Befehle darin nachschlagen. Anderenfalls knnen Sie versuchen,
  Informationen ber das Internet zu bekommen. Man kann dazu eine
  Suchmaschine verwenden, und als Suchwrter einige Befehle verwenden,
  um zu vermeiden, dass Sie Seiten finden, die zwar Informationen ber
  diese Befehle enthalten, die Befehle selber aber nicht auflisten.  Sie
  knnen auch einige der Seiten ausprobieren, die im Abschnitt ``Seiten
  im Internet'' angegeben sind.


  5.2.  Initialisierungs-Strings: Abspeichern und Wiederherstellen

  Die Beispiele in diesem Abschnitt stammen aus dem Hayes AT Modem-
  Befehlssatz. Alle Befehle mssen mit den Buchstaben AT beginnen
  (z.B. AT&C1&D3). Wenn ein Modem eingeschaltet wird, dann stellt es
  sich automatisch auf eine der Konfigurationen ein, die in seinem nicht
  flchtigen Speicher enthalten sind. Wenn Sie mit dieser Konfiguration
  zufrieden sind, brauchen Sie nichts weiter zu tun.

  Falls die Konfiguration nicht zufriedenstellend ist, kann man die
  abgespeicherte Konfiguration entweder direkt verndern, oder das Modem
  jedes mal, bevor es verwendet wird, durch einen Init-String (=
  Intialisierungs-Sequenz) einstellen. Ein Kommunikationsprogramm nutzt
  normalerweise diese Mglichkeit. Was genau gesendet wird, hngt davon
  ab, wie Sie das Kommunikationprogramm konfiguriert haben oder welche
  Skripts Sie dafr geschrieben haben, wenn Sie Kermit verwenden.
  blicherweise knnen Sie den Init-String, den Ihr
  Kommunikationsprogramm verwenden, editieren und Ihren Bedrfnissen
  (bzw. den Ihres Modems) anpassen. Hufig knnen Sie auch innerhalb des
  Kommunikationsprogramms einen bestimmten Modemtyp auswhlen, dann wird
  ein Init-String verwendet, von dem das Kommunikationsprogramm denkt,
  dass es der bestmgliche ist.

  Die Konfiguration, die das Modem verwendet, wenn es eingeschaltet
  wird, (ein sogenanntes Profil) kann durch einen Init-String festgelegt
  werden.  Wenn ein Kommunikationsprogramm dem Modem einen Init-String
  sendet, dann wird dieser Befehl die Standardkonfiguration ndern. Wenn
  z.B.  der Init-String nur zwei Befehle enthlt, dann werden nur die
  betreffenden beiden Parameter verndert. Andere Befehle knnen
  hingegen ein bereits im Modem gespeichertes Profil aktivieren, so dass
  der Init-String in diesem Fall die komplette Konfiguration ndern
  knnte.

  Moderne Modems verfgen ber einige verschiedene Profile, aus denen
  man auswhlen kann. Diese Profile sind im nicht flchtigen Speicher
  des Modems abgelegt; der Inhalt dieses Speichers bleibt auch dann
  erhalten, wenn das Modem abgeschaltet wird. In meinem Modem gibt es
  z.B. zwei werkseitig eingestellte Profile (0 und 1, keines von beiden
  kann verndert werden) und zwei benutzerdefinierte Profile (0 und 1),
  die der Anwender verndern und abspeichern kann. Ihr Modem verfgt
  u.U. ber eine grere Anzahl an Profilen. Welches der
  benutzerdefinierten Profile beim Einschalten aktiv wird, hngt von
  einem anderen Parameter im Profil ab. Falls der Befehl AT&Y0
  eingegeben wird, dann wird in Zukunft das Profil 0 beim Einschalten
  verwendet. Beim Befehl AT&Y1 wird dagegen Profil 1 verwendet.

  Es gibt auch Befehle, um jedes der vier gespeicherten Profile ab
  sofort zu aktivieren. Man knnte so einen Befehl in einem Init-String
  verwenden. Wenn das selbe Profil aktiviert wird, das beim Einschalten
  geladen wurde, wird natrlich nichts gendert, es sei denn, das aktive
  Profile wurde seit dem Einschalten verndert.  Da dies nicht ganz
  auszuschliessen ist, ist es eine gute Idee, einen Init-String zu
  verwenden, selbst wenn dabei nichts anderes bewirkt wird, als ein
  bereits gespeichertes Profil zu aktivieren.

  Das gespeicherte Profil 0 aktivieren:
  ATZ0 aktiviert benutzerdefiniertes Profil 0 und bewirkt einen Reset
  AT&F0 aktiviert das werkseitig eingestellte Profil 0

  Wenn Sie das Modem nach Ihren Wnschen konfiguriert haben
  (einschlielich der Aktivierung eines werkseitigen Profils mit kleinen
  nderungen), mchten Sie es vielleicht als benutzerdefiniertes Profile
  ablegen:
  AT&W0 speichert die aktuelle Konfiguration als Anwenderprofil 0

  Viele Modemanwender kmmern sich nicht darum, eine gute Konfiguration
  in ihrem Modem zu speichern. Statt dessen senden sie dem Modem
  jedesmal, bevor es verwendet werden soll, einen lngeren Init-String.
  Eine andere Mglichkeit besteht darin, die Werkseinstellung am Beginn
  des Init-Strings zu aktivieren, und dann einige kleinere nderungen
  mit zustzlichen Befehlen am Ende des Init-Strings durchzufhren. Bei
  diesem Verfahren werden Probleme vermieden, falls jemand das
  benutzerdefinierte Profil, welches beim Einschalten geladen wird,
  verndert hat.

  Einige Kommunikationsprogramme verfgen ber eine Bibliothek, aus der
  fr jeden Modem-Typ ein geeigneter Init-String ausgewhlt werden kann.
  Die schwierigste Methode (bei der Sie jedoch auch eine Menge ber
  Modems lernen knnen) besteht darin, das Modem-Handbuch zu studieren
  und selbst einen Init-String zu schreiben. Sie knnen auch die
  genderte Modem-Konfiguration dauerhaft als benutzerdefiniertes Profil
  abspeichern,  so dass knftig eine Inititalisierung des Modems nicht
  mehr notwendig ist.

  Wenn Sie die von Kommunikationsprogrammen verwendeten Init-Strings
  nher untersuchen, werden Sie vielleicht Symbole finden, die keine
  gltigen Modem-Befehle sind. Diese Symbole stellen Befehle fr das
  Kommunikationsprogramm dar und werden nicht an das Modem bertragen
  (wie z.B. das Zeichen ~, das fr eine kurze Pause steht).


  5.3.  Weitere Modem-Befehle

  Alle Modem-Befehl mssen mit der Zeichenfolge AT beginnen. Die
  folgenden Befehle fr Hayes-kompatible Modems stellen sinnvolle Werte
  ein:



       E1    Befehlsecho EIN
       Q0    Modemmeldungen werden ausgegeben
       V1    Modemmeldungen erscheinen im Klartext
       S0=0  Modem hebt bei ankommenden Anrufen nicht ab




  Die folgenden Befehle betreffen die Modemsteuerleitungen DCD und DSR:


       &C1  DCD leuchtet nur bei bestehender Verbindung
       &S0  DSR ist immer gesetzt, wenn das Modem eingeschaltet ist




  Das Verhalten der DTR Steuerleitung lt sich auch beeinflussen, aber
  das ist ein wenig komplizierter.


  6.  Modems fr den Linux-PC

  6.1.  Externe und interne Modems

  Es gibt zwei Typen von Modems fr einen PC: externe und interne
  Modems. Das interne Modem wird im PC installiert (dazu mssen Sie u.a.
  das Gehuse ffnen), whrend das externe Modem einfach an die serielle
  Schnittstelle angeschlossen wird. Interne Modems sind hufig
  preisgnstiger, verbrauchen in der Regel weniger Energie und
  beanspruchen keinen Platz auf Ihrem Schreibtisch. Externe Modems sind
  sehr viel einfacher zu installieren und zu konfigurieren, und verfgen
  ber Kontrollanzeigen. Sie lassen sich leicht an einen anderen
  Computer anschliessen. Die meisten externen Modems haben keinen
  Ausschalter, und verbrauchen daher auch Energie, wenn sie nicht
  gebraucht werden.  Es empfiehlt sich daher, das Modem-Netzteil aus der
  Steckdose zu ziehen, um Energie und Kosten zu sparen.  Achten Sie beim
  Anschluss eines externen Modems auch darauf, dass der serielle Port
  des PC in der Lage ist, die Daten mit der notwendigen Geschwindigkeit
  an das Modem zu liefern.  Nach Mglichkeit sollte ein UART 16550
  verwendet werden, da die CPU hierdurch entlastet wird.

  Fr Linux stellen interne Modems ein besonderes Problem dar. Sie
  funktionieren aber genauso gut wie externe Modems, unter der
  Voraussetzung, dass Sie keines der Modems verwenden, die nur unter MS
  Windows funktionieren und dass Sie bereit sind, u.U. eine Menge Zeit
  in die Konfiguration zu investieren. Vorsicht: einige der Modems, die
  nur unter MS Windows laufen, sind nicht unbedingt auch als solche
  gekennzeichnet. Vereinbaren Sie beim Kauf ein Rckgaberecht, falls das
  Modem nicht unter Linux funktioniert.

  Die meisten modernen Modems sind PnP Modems. Sie haben folgende
  Mglichkeiten:

    Verwendung des isapnp Programms

    Konfiguration durch ein PnP BIOS

    Verwendung eines PnP Linux (Kernelpatch)

     Jede Vorgehensweise hat ihre Nachteile. Die Dokumentation zu isapnp
     ist schwer verstndlich, das Plug-and-Play HOWTO bietet aber eine
     Hilfestellung. Wenn das PnP BIOS die Konfiguration durchfhren
     soll, mssen Sie lediglich dafr sorgen, dass das BIOS wei, dass
     Sie kein PnP Betriebssystem verwenden. Dennoch knnen dabei Fehler
     auftreten (siehe ``Wie ist die Hardware des seriellen Ports
     eingestellt?''.  Ein Kernelpatch kann ebenfalls kompliziert sein,
     und fr die neuesten Kernel ist u.U. kein Patch verfgbar.

  Viele Linux Anwender sind der Ansicht, dass es am einfachsten ist,
  sich ein externes Modem zu besorgen und anzuschliessen. Aber da
  moderne Peripheriegerte meistens PnP Gerte sind, mssen Sie sich
  sowieso frher oder spter mit diesem Problem auseinandersetzen.
  Dennoch ist die zweckmigere (aber auch teurere) Lsung der Einsatz
  eines externen Modems.


  6.2.  Externe Modems

  6.2.1.  Externe PnP Modems

  Viele externe Modems sind als Plug-and-Play gekennzeichnet, aber sie
  sollten genauso gut funktionieren wie nicht-PnP Modems. Weil Sie
  normalerweise das Modem mit dem seriellen Port verbinden, der seine
  eigenen Werte fr IRQ und I/O-Adresse hat, braucht das Modem keine PnP
  Funktionalitt fr diese Einstellungen. Dennoch muss natrlich der
  serielle Port entsprechend konfiguriert werden, falls die
  Standardeinstellung nicht bernommen werden kann.

  Wie kann ein externes Modem ein PnP-Modem sein, wenn es nicht durch
  PnP konfiguriert werden kann? Nun, es hat eine spezielle PnP
  Identifikation eingebaut, die von einem PnP Betriebssystem durch den
  seriellen Port abgefragt werden kann. Ein PnP Betriebssystem wei
  dann, welcher Modemtyp an welchem seriellen Port angeschlossen ist. In
  diesem Fall brauchen Sie in Anwendungsprogrammen den Port nicht
  einzustellen (wie z.B.  /dev/ttyS2 oder COM3). Aber wenn Sie kein PnP
  Betriebssystem verwenden, mssen Sie diese Einstellungen manuell
  vornehmen.


  6.2.2.  Anschlusskabel und Installation

  Der Anschluss eines externen Modems an eine serielle Schnittstelle ist
  vergleichsweise einfach. Modems bentigen einfache Modemkabel (keine
  Null-Modem Kabel) ohne gekreuzte Leitungen, wie sie im Fachhandel
  erhltlich sein sollten. Fr den Anschluss am seriellen DB-9 oder
  DB-25 Stecker des Computers bentigen Sie eine Buchse am Modemkabel
  (keinen Stecker). Verbinden Sie das Modem mit dem seriellen Port. Wenn
  Sie die Standardeinstellung fr IRQ und I/O-Adresse bernehmen, knnen
  Sie jetzt ein Kommunikationsprogramm starten und das Modem selbst
  konfigurieren.

  6.2.3.  Die Bedeutung der Kontroll-LEDs


    TM: Modemtest

    AA: automatische Anrufannahme

    RD: Daten auf der Empfangsleitung = RxD

    SD: Daten auf der Sendeleitung = TxD

    TR: Rechner ist betriebsbereit = DTR

    RI: jemand ruft das Modem an

    OH: Modem hat abgenommen

    MR: Modem betriebsbereit

    EC: Fehlerkorrektur ein

    DC: Datenkompression ein

    HS: Hochgeschwindigkeit


  6.3.  Interne Modems

  Zur Installation eines internen Modems wird das Gehuse des PC
  geffnet und die Modemkarte wird in einen freien Steckplatz der
  Hauptplatine gesteckt. Es gibt Modems fr ISA Steckpltze und fr PCI
  Steckpltze.  Whrend externe Modems mit einem kurzen Kabel mit der
  seriellen Schnittstelle verbunden werden, ist die serielle
  Schnittstelle bei internen Modems bereits eingebaut. Mit anderen
  Worten: Die Modemkarte ist sowohl ein Modem als auch eine serielle
  Schnittstelle.

  Die I/O-Adresse und der IRQ fr die serielle Schnittstelle werden vor
  der Installation durch sogenannte Jumper eingestellt. Dies sind
  winzige Steckbrcken, die Kontakt zwischen bestimmten Pins der Karte
  herstellen.  PnP Modems (oder genauer der serielle
  Schnittstellenanteil der Modemkarte) verwenden keine Jumper zur
  Konfiguration, sondern werden durch spezielle Konfigurationsbefehle
  eingestellt. Solche Befehle knnen von einem PnP BIOS, dem isapnp-
  Programm (nur fr ISA-Bus!) oder von einem PnP Betriebssystem gesendet
  werden. Windows 9x beherscht diese Art der Konfiguration. Mit Linux
  haben Sie folgende Mglichkeiten der Konfiguration (keine der
  Mglichkeiten ist immer einfach):


  1. Verwenden Sie isapnp (evtl. automatisch beim Booten)

  2. Verwenden Sie ein PnP BIOS

  3. Fhren Sie einen Kernelpatch fr Linux durch, um aus Linux ein PnP
     Betriebssystem zu machen


  6.4.

  Interne Modems, die zu meiden sind (Winmodems etc)

  Die Mehrheit der seit etwa Mitte 1998 hergestellten internen Modems
  arbeiten nicht unter Linux (Winmodems o..). Andere bliche
  Bezeichnungen sind HSP (Host Signal Processor), HCF (Host Controlled
  Family) und Soft-... Modem. Diese Modems berlassen die meiste (oder
  die gesamte) Arbeit dem Prozessor (CPU) des Rechners.  Sie knnen
  keine Daten komprimieren, sie besitzten keine Mglichkeiten der
  Fehlererkennung und knnen Daten nicht packetieren. Diese Arbeit muss
  von der CPU geleistet werden.  Weil hierfr nur Windows-Software zur
  Verfgung steht (bisher wurde diese Software nicht auf Linux
  portiert), wird ein solches Modem unter Linux nicht funktionieren.
  Dazu muss das Modem einen seriellen Port simulieren. Eine Liste der
  Modems, die unter Linux funktionieren, finden Sie hier:


       http://www.o2.net/~gromitkc/winmodem.html


  Software Modem wre eigentlich die bessere Bezeichnung fr
  Winmodem.  Diesem Namen kann man wenigstens entnehmen, dass diese
  Software nur unter MS Windows funktioniert. Der Name Winmodem ist
  brigens auch ein geschtztes Warenzeichen fr einen besonderen
  Modemtyp.

  Wie knnen Sie herausfinden, ob Ihr internes Modem unter Linux
  funktioniert?  Zunchst mssen Sie den genauen Typ Ihres Modems in
  Erfahrung bringen. Falls Sie den Typ nicht wissen, und Sie auch MS
  Windows auf Ihrem Linux-PC installiert haben, knnen Sie dies mit
  einem Mausklick auf das Modem-Symbol in der Systemsteuerung
  herausfinden. Sehen Sie dann am besten in der ein paar Zeilen weiter
  oben erwhnten Modemliste nach. Wenn dies nicht weiterhilft oder nicht
  durchfhrbar ist, knnen Sie auch in der Dokumentation nachsehen, die
  mit dem Modem geliefert wurde. Suchen Sie nach einem Abschnitt wie
  Systemvoraussetzungen (engl. System Requirements).  Vielleicht ist
  dieser Abschnitt klein gedruckt, lesen Sie ihn sorgfltig.  Falls
  Windows als eine der Systemvoraussetzungen aufgelistet ist, wird es
  unter Linux wahrscheinlich nicht funktionieren.

  Andererseits knnte das Modem unter Linux funktionieren, wenn nicht
  ausdrcklich erwhnt ist, dass Sie Windows bentigen. Falls von
  Designed for Windows die Rede ist, bedeutet das u.U. nur, dass es
  Microsofts Plug and Play Spezifikation untersttzt. Das wre in
  Ordnung, da diese auch von Linux untersttzt wird (bis jetzt
  allerdings nicht besonders gut). Designed for Windows gibt also
  keinerlei Hinweis darauf, ob das Modem unter Linux funktioniert oder
  nicht. Sie knnen die Internetseite des Herstellers zu Rate ziehen
  oder dort per E-Mail nachfragen. Ich habe mal eine Internetseite
  gesehen, in der ausdrcklich stand, dass das eine Modell unter Linux
  funktioniert, whrend dies fr ein anderes Modell nicht zutraf.

  Soweit dem Autor bekannt, gibt es im Moment keine Bestrebungen,
  Winmodems unter Linux zu untersttzen. Vielleicht hilft es, wenn Sie
  den Hersteller auffordern, die Treiber auf Linux zu portieren.


  6.5.  Welche internen Modems sollte man meiden?

  Folgende interne Modems sollten gemieden werden:


    ``winmodem'' oder hnlich.  Diese Modems werden berhaupt nicht
     funktionieren.

    ``PCI Modems'' funktionieren unter Linux selten

    ``MWave und DSP Modems'' funktionieren vielleicht, aber nur, wenn
     Sie jedesmal nach dem Einschalten des PCs zunchst Windows/DOS
     starten

    ``RPI (Rockwell)'' Treiber funktionieren, aber nur mit
     eingeschrnkter Leistungsfhigkeit
  6.5.1.  MWave und DSP Modems

  Dieser Modemtyp verwendet DSPs (digitale Signalprozessoren). Die
  Software fr diese Prozessoren muss unmittelbar vor dem Gebrauch des
  Modems von der Festplatte des PC in den Speicher des DSP bertragen
  werden. Unglcklicherweise wird diese bertragung durch DOS/Windows-
  Programme bewerkstelligt, unter Linux ist dies nicht mglich. Normale
  Modems, die unter Linux arbeiten, verfgen hufig ebenfalls ber einen
  DSP (auf der Verpackung wird damit Werbung gemacht), aber die Software
  fr den Betrieb ist im Modem gespeichert.  In diesem Fall handelt es
  sich nicht um ein DSP Modem im Sinne dieses Absatzes, und das Modem
  sollte unter Linux funktionieren. Ein Beispiel fr ein DSP Modem ist
  Aptiva MWAVE von IBM.

  Wenn ein DSP Modem eine serielle Schnittstelle simuliert, ist es unter
  Linux verwendbar, da Linux zur Kommunikation mit einem Modem ebenfalls
  die serielle Schnittstelle verwendet. Wenn Sie zustzlich zu Linux
  auch noch DOS/Windows auf dem selben PC installiert haben, knnen Sie
  das Modem wie folgt nutzen: Zuerst installieren Sie den Treiber unter
  DOS (verwenden Sie den DOS-Treiber, nicht den Treiber fr Windows).
  Starten Sie dann DOS/Windows, stellen Sie sicher, dass das Modem
  initialisiert wird, und starten Sie Linux, ohne den PC abzuschalten.
  Eine Mglichkeit hierfr ist der Aufruf von loadlin.exe. Dies ist ein
  DOS-Programm, welches Linux von DOS aus bootet (siehe auch das Config
  HOWTO). Eine andere einfache Mglicheit ist, gleichzeitig die Tasten
  STRG-ALT-ENTF zu drcken. Das Modem bleibt an der selben seriellen
  Schnittstelle angeschlossen (und an der selben I/O-Adresse), die auch
  unter DOS verwendet wird.


  6.5.2.  Rockwell (RPI) Treiber

  Modems, die einen Rockwell RPI Treiber bentigen, sind unter Linux
  nicht voll nutzbar, da die Treibesoftware nicht unter Linux luft.
  Der RPI Treiber sorgt fr die Datenkomprimierung und Fehlererkennung,
  indem er Software fr MS Windows verwendet. Wenn Sie das Modem ohne
  Treibersoftware verwenden wollen (und auf die Datenkomprimierung und
  Fehlererkennung verzichten), knnen Sie die Verwendung des RPI
  Treibers sehr einfach deaktivieren, indem Sie dem Modem bei jedem
  Einschalten einen entsprechenden Initialisierungsbefehl (Init-String)
  senden. Bei Davids Modem lautet der Befehl +HO. Auf die
  Datenkomprimierung zu verzichten, ist kein so groer Nachteil, wie man
  zunchst meinen knnte.  Die meisten groen Dateien, die Sie ber das
  Internet herunterladen knnnen, sind bereits komprimiert, und jeder
  Versuch, sie noch weiter zu komprimieren, verlangsamt die
  Datenbertragung eher.


  6.5.3.  PCI Modems

  Ein PCI Modem ist ein Modem, dass sich auf einer Steckkarte befindet,
  die in einen freien PCI Steckplatz auf der Hauptplatine des PC
  eingesteckt wird. Unglcklicherweise scheint es so, als ob beinahe
  alle PCI Modems nicht unter Linux funktionieren, auch wenn hin und
  wieder davon berichtet wird, dass es wieder jemandem gelungen sei, ein
  PCI Modem unter Linux erfolgreich einzusetzen.

  Wenn Sie ein PCI Modem installiert haben, sehen Sie sich den Inhalt
  der Datei /proc/pci an. Wenn Sie eine hohe Speicheradresse sehen (z.B.
  0xfebfff00), nutzt das Modem eventuell einen gemeinsamen
  Speicherbereich.  Das gemeinsame Nutzen eines Speicherbereichs wird
  unter Linux nicht untersttzt. Wenn es keine hohe Speicheradresse gibt
  und die einzige Adresse, die Sie sehen, ist eine I/O-Adresse kleiner
  als 0xffff??, dann knnte das Modem funktionieren. Ich bin nicht
  sicher, ob diese Methode immer geeignet ist, festzustellen, ob ein
  Modem unter Linux betrieben werden kann oder nicht. Falls Sie
  erfolgreich ein PCI Modem unter Linux verwenden, lassen Sie mir bitte
  Informationen darber zukommen, wie die Datei /proc/pci aussieht oder
  anhand welchen Eintrags man feststellen kann, ob ein Modem unter Linux
  luft oder nicht.


  7.

  Gertedateien fr die serielle Schnittstelle /dev/ttyS2, usw.

  Gertedateien (engl.: Devices) enthalten im Unterschied zu normalen
  Dateien keine Daten. Ein Zugriff des Betriebssystems auf eine
  Gertedatei bedeutet einen Zugriff auf das entsprechende
  Peripheriegert, welches durch die Gertedatei dargestellt wird.
  Hufig wird zwischen Gert und Gertedatei gar nicht mehr
  unterschieden, fr beide wird einfach der Begriff Device verwendet.

  Informationen ber das Anlegen von Gertedateien im Verzeichnis /dev
  finden Sie im Kapitel Creating Devices in the /dev directory der
  Serial HOWTO.


  7.1.  Namen und Nummern von Devices am seriellen Port

  Devices haben unter Linux Major und Minor Numbers. Jeder serielle Port
  kann durch zwei gltige Gertedatein im /dev-Verzeichnis reprsentiert
  sein: ttyS und cua. Die entsprchenden Gertetreiber (d.h. die
  Software, die auf diese Dateien zugreift) verhalten sich leicht
  unterschiedlich. Das cua-Device ist berholt und wird in Zukunft nicht
  mehr verwendet werden (siehe auch ``Die cua-Gertedatei'').

  DOS/Windows verwendet den Namen COM fr die seriellen
  Schnittstellen, whrend das setserial-Programm die Namen tty00,
  tty01, ... gebraucht. Verwechseln Sie diese Bezeichner nicht mit
  /dev/tty0, /dev/tty1, usw., die fr Ihre Konsole verwendet werden,
  aber keine seriellen Ports sind. Die standardmigen DOS-Namen (COM1,
  usw) und I/O-Adressen sind in folgender Tabelle aufgefhrt (die Werte
  auf Ihrem System knnen evtl. davon abweichen):



              set-                                              IO
       DOS   serial          major minor         major minor  Adresse
       COM1  tty00  /dev/ttyS0  4,  64;  /dev/cua0  5,  64      3F8
       COM2  tty01  /dev/ttyS1  4,  65;  /dev/cua1  5,  65      2F8
       COM3  tty02  /dev/ttyS2  4,  66;  /dev/cua2  5,  66      3E8
       COM4  tty03  /dev/ttyS3  4,  67;  /dev/cua3  5,  67      2E8




  In allen Linux-Distributionen sollten die ttyS-Devices bereits
  angelegt sein (und auch die cua-Devices, bis sie endgltig abgeschafft
  werden). Sie knnen dies durch folgende Befehle berprfen:



       ls -l /dev/cua*
       ls -l /dev/ttyS*







  7.2.  Sollte ttySn auf /dev/modem gelinkt werden ?

  Bei einigen Installationen werden zwei zustzliche Devices angelegt,
  /dev/modem fr das Modem und /dev/mouse fr die Maus. Beides sind
  symbolische Links auf die entsprechende Gertedatei in /dev, die Sie
  whrend der Installation ausgewhlt haben (wenn Sie eine Bus-Maus
  haben ist /dev/mouse ein Link auf das Bus-Maus Device).

  Es gab einige Diskussionen um den Sinn von /dev/mouse und /dev/modem.
  Von der Verwendung dieser symbolischen Links wird abgeraten.
  Insbesondere knnten sich Probleme mit den Lock-Dateien ergeben, wenn
  Sie das Modem fr eine Einwahl von aussen zur Verfgung stellen wollen
  und /dev/modem verwenden. Sie knnen diese Links verwenden, aber
  stellen Sie sicher, dass sie auf das richtige Device verweisen.
  Andererseits mssen Sie u.U. andere Applikationen umkonfigurieren,
  wenn Sie diese Links verndern oder lschen.


  7.3.  Die cua-Gertedatei

  Jedes ttyS Device hat eine korrespondierendes cua Device.  Aber das
  cua Device wird in Zukunft abgeschafft, und so empfiehlt es sich, ttyS
  zu verwenden (solange cua nicht explizit notwendig ist). Es gibt einen
  Unterschied zwischen cua und ttyS, aber ein findiger Programmierer
  kann es erreichen, dass sich ein ttyS Port wie ein cua Port verhlt,
  so dass es keine Notwendigkeit mehr fr cua gibt. Eine Ausnahme bilden
  einige ltere Programme, die cua verwenden mssen.

  Worin besteht nun der Unterschied? Der hauptschliche Unterschied
  zwischen cua und ttyS besteht darin, was in einem C-Programm passiert,
  wenn ein normaler open()-Aufruf versucht, einen Port zu ffnen. Ein
  cua Port kann einfach geffnet werden, selbst wenn die Modem
  Signalleitungen berprft werden und die DCD Leitung ein ffnen
  eigentlich verbietet (weil sich niemand eingewhlt hat und es daher
  auch kein Trgersignal gibt). Durch schlaue Programmierung kann man es
  aber erreichen, dass sich ein ttyS Port genauso verhlt wie ein cua
  Port.  Dies ist der Grund, warum cua frher fr abgehende und ttyS fr
  eingehende Verbindungen verwendet wurde.

  Ab Linux Kernel 2.2 wird eine Warnmeldung in die Kernel-Logdatei
  geschrieben, wenn ein cua Port verwendet wird. Dies ist ein Zeichen
  dafr, dass cua Ports nicht mehr lange untersttzt werden.


  8.  Interessante Programme, die Sie kennen sollten

  8.1.  Was ist setserial?

  8.1.1.  Einfhrung

  Eine wichtige Bemerkung gleich am Anfang: Verwenden Sie niemals
  setserial mit Laptops (PCMCIA).

  Mit Hilfe des Programms setserial knnen Sie dem Gertetreiber die
  I/O-Adresse des seriellen Ports mitteilen, auf welchen Interrupt (IRQ)
  die Hardware des Ports eingestellt ist, ber welchen UART Typ Sie
  verfgen, etc. Das Programm kann Ihnen auch die aktuellen
  Einstellungen anzeigen. Zustzlich kann es die Hardware prfen, wenn
  bestimmte Optionen angegeben werden. Informationen ber die Anwendung
  von setserial in Ihrer Distribution finden Sie mit



       man setserial


  sowie in den Info-Seiten unter /usr/doc/setserial.../ (o..).

  setserial wird oft beim Systemstart durch ein Start-Skript aufgerufen.
  Es wird nur funktionieren, wenn das entsprechende Kernel-Modul geladen
  ist. Sollten Sie aus irgendeinem Grund das Modul zu einem spteren
  Zeitpunkt wieder aus dem Speicher entfernen, gehen vorgenommene
  nderungen wieder verloren. In diesem Fall mssen Sie setserial
  nochmals aufrufen. Neben dem Aufruf durch ein Start-Skript wird
  setserial aufgerufen, wenn das Kernel-Modul geladen wird.

  Mit Hilfe entsprechender Optionen kann setserial den seriellen Port zu
  Testzwecken an einer bestimmten I/O-Adresse ansprechen (engl.:
  Probing). Allerdings mssen Sie die I/O-Adresse wissen oder raten.
  Wenn Sie z.B. /dev/ttyS2 angeben, wird die I/O-Adresse angesprochen,
  von der setserial annimmt, dass sie dem Port /dev/ttyS2 zugeordnet ist
  (0x2F8).  Wenn Sie setserial mitteilen, dass sich ttyS2 an einer
  anderen Adresse befinden, wird es versuchen, diese andere Adresse
  anzusprechen.

  setserial konfiguriert weder IRQs noch I/O-Adressen auf der Hardware
  des seriellen Ports. Sie mssen setserial genau die Werte mitteilen,
  auf die die Hardware mittels Jumper oder Plug-and-Play eingestellt
  ist. Verwenden Sie fr setserial keinerlei aus der Luft gegriffenen
  Werte. Wenn Sie aber die I/O-Adresse wissen, aber nicht den Wert fr
  den IRQ, knnen Sie versuchen, mit Hilfe von setserial den IRQ zu
  bestimmen.

  Sie knnen sich eine Liste der mglichen Befehle fr setserial
  ausgeben lassen, indem Sie einfach setserial ohne weitere Argumente
  eingeben (mit Ausnahme der Optionen, die nur aus einem Buchstaben
  bestehen, wie z.B. -v, die Sie bei der Fehlersuche verwenden
  sollten). Beachten Sie, dass setserial fr eine I/O-Adresse die
  Bezeichnung port verwendet. Wenn Sie eingeben:


       setserial -g /dev/ttyS*




  sehen Sie einige Informationen ber die Konfiguration des
  Gertetreibers fr Ihre Ports. Mit der Option -gv erhalten Sie noch
  mehr Informationen. Aber die Ausgabe verrt Ihnen nicht, ob die Hard
  ware auch wirklich auf die angezeigten Werte konfiguriert ist. Sie
  knnen setserial aufrufen und eine rein fiktive I/O-Adresse, irgen
  deinen IRQ und einen beliebigen UART-Typ zuweisen. Wenn Sie setserial
  das nchste mal aufrufen, wird es diese falschen Werte anstandslos
  ausgeben. Beachten Sie, dass Wertzuweisungen verlorengehen, wenn der
  PC ausgeschaltet wird, daher wird setserial automatisch beim Start von
  Linux aufgerufen.


  8.1.2.  Probing

  Um herauszufinden, ob eine bestimmte serielle Hardware installiert
  ist, mssen Sie zunchst die I/O-Adresse wissen bzw. raten. Um die
  vorhandene Hardware anzusprechen, knnen Sie den Befehl setserial mit
  der Option -v und dem Parameter autoconfigure verwenden. Wenn die
  Bildschirmausgabe einen UART Typ wie z.B. 16550A anzeigt, ist alles in
  Ordnung. Wenn statt dessen unknown fr den UART Typ angezeigt wird,
  ist wahrscheinlich berhaupt kein serieller Port an der angegebenen
  I/O-Adresse. Einige Billig-UART Typen identifizieren sich nicht
  korrekt; wenn Sie unknown sehen, besteht also noch eine geringe
  Chance, dass Sie dennoch einen seriellen Port installiert haben.


  Neben dem UART-Typ kann setserial auch versuchen, den IRQ
  herauszufinden, aber auch das funktioniert nicht immer einwandfrei. In
  Programmversionen >= 2.15 kann das Ergebniss des zuletzt
  durchgefhrten Tests gespeichert und in der Konfigurationsdatei
  /etc/serial.conf abgelegt werden, die beim nchsten Start von Linux
  gelesen wird. Das Skript, welches setserial beim Booten startet, fhrt
  blicherweise kein Probing durch, aber das knnen Sie ndern. Weitere
  Informationen dazu finden Sie im nchsten Abschnitt.


  8.1.3.  Systemstart-Konfiguration

  Wenn der Kernel das Modul mit dem Gertetreiber fr die serielle
  Schnittstelle ldt (bzw. wenn der Gertetreiber fest zum Kernel
  hinzugebunden wurde), werden nur die Devices ttyS0 bis ttyS3
  automatisch gefunden und der Treiber wird auf die IRQs 4 und 3
  konfiguriert (unabhngig davon, auf welche Werte die Hardware
  eingestellt ist). Sie erkennen das an den Meldungen, die beim
  Systemstart ausgegeben werden, es sieht so aus, als ob setserial
  gestartet worden wre. Wenn Sie drei oder mehr Ports verwenden, knnen
  sich Probleme ergeben, falls ein IRQ von mehr als einem Port genutzt
  wird.

  Um diese oder hnliche Problem zu lsen, muss setserial ein zweites
  Mal aufgerufen werden, diesmal allerdings mit den richtigen Werten fr
  die IRQs. Eines der Skripte, die beim Systemstart ausgefhrt werden,
  ist genau dafr zustndig. Dieser zweite Aufruf von setserial muss
  mglichst frh whrend des Boot-Vorgangs erfolgen, noch bevor
  irgendein anderer Prozess versucht, den seriellen Port zu verwenden.
  Eigentlich sollte bei Ihrer Linux Distribution bereits alles so
  eingestellt sein, dass setserial beim Start von Linux automatisch
  aufgerufen wird. Unter /usr/doc/ bzw.  /usr/share/doc/ sollten Sie
  Informationen finden, was speziell bei Ihrer Distribution eingestellt
  ist und wie Sie diese Einstellungen ggf. verndern knnen.


  8.1.3.1.  /etc/serial.conf Eine neue Konfigurationsmglichkeit unter
  Verwendung von

  Bis zur Programmversion 2.14 wurde setserial konfiguriert, indem das
  Shell-Skript mit dem Aufruf von setserial editiert wurde; oft war dies
  die Datei /etc/rc.d/rc.serial.

  Ab der Version 2.15 liest dieses Shell-Skript die Konfigurationsdaten
  fr setserial aus der Datei /etc/serial.conf.  Aber selbst diese Datei
  muss nicht mehr manuell editiert werden, normalerweise bewirkt die
  Verwendung von setserial auf der Befehlszeile, dass /etc/serial.conf
  automatisch entsprechend angepasst wird.

  Die Absicht dahinter ist natrlich, es Ihnen so einfach wie mglich zu
  machen: Sie mssen keine Dateien editieren, und setserial wird bei
  jedem Start von Linux automatisch fr eine richtige Konfiguration
  sorgen.  Aber es gibt dennoch einige Fallstricke: Zum Einen ist es
  nicht setserial selbst, welches die Konfiguration in /etc/serial.conf
  schreibt. Zum Anderen knnen sich unterschiedliche Distributionen
  unterschiedlich verhalten. Und schlielich knnen Sie dieses Verhalten
  auch noch beeinflussen.

  Hufig passiert etwa folgendes: Wenn Sie ihren PC herunterfahren, wird
  das Skript, welches setserial beim Systemstart aufgerufen hat,
  nochmals ausgefhrt, diesmal allerdings auf andere Weise. Beim
  Herunterfahren des Systems werden nur die Teile des Skripts
  durchlaufen, die fr den Shutdown verantwortlich sind.  Das Skript
  sorgt nun dafr, dass setserial aufgerufen wird, um die aktuellen
  Einstellungen zu ermitteln, die dann in /etc/serial.conf gespeichert
  werden. Wenn Sie also setserial aufrufen, werden die nderungen nicht
  sofort in /etc/serial.conf gespeichert, sondern dann und nur dann,
  wenn Sie einen normalen Shutdown durchfhren.

  Sie knnen sich sicher schon vorstellen, welche Probleme auftreten
  knnen. Vielleicht haben sie keinen richtigen Shutdown durchgefhrt
  (z.B. den PC einfach ausgeschaltet). Oder Sie haben ein wenig mit
  setserial experimentiert und vergessen, beim letzten Aufruf die
  richtigen Werte anzugeben. Dann werden Ihre experimentellen Werte
  gespeichert.

  Wenn Sie dagegen /etc/serial.conf manuell editieren, werden diese
  Einstellungen beim Shutdown mit den aktuellen Einstellungen von
  setserial berschrieben. Es gibt eine Mglichkeit, um zu verhindern,
  dass /etc/serial.conf beim Shutdown angepasst wird. Dazu muss die
  erste Zeile von /etc/serial.conf, ###AUTOSAVE###, entfernt werden.
  Von mindestens einer Distribution ist bekannt, dass diese erste Zeile
  automatisch beim ersten Shutdown unmittelbar nach der Installation
  gelscht wird. Hoffentlich enthlt /etc/serial.conf in Ihrer
  Distribution gengend Kommentare, die Ihnen weiterhelfen.

  Das Skript, welches setserial beim Systemstart aufruft, ist in den
  meisten Fllen /etc/init.d/setserial (Debian) oder /etc/init.d/serial
  (Redhat), es sollte aber nicht editiert werden. Bei Redhat 6.0 muss
  die Datei /usr/doc/setserial-2.15/rc.serial nach /etc/init.d/ kopiert
  werden, wenn setserial beim Booten ausgefhrt werden soll.

  Um einen Port zu deaktivieren, knnen Sie ihn mithilfe von setserial
  auf uart none setzen.

  Das Format der Konfigurationsdatei /etc/serial.conf stimmt mit dem
  Format berein, mit dem die Parameter fr setserial auf der
  Befehlszeile angegeben werden. Fr jeden Port wird eine Zeile
  verwendet.

  Seit Juli 1999 gibt es einen bekannten Fehler: Mit der
  ###AUTOSAVE###-Funktion werden nur diejenigen Parameter gesichert,
  die mit dem Aufruf von




       setserial -g /dev/ttyS?




  angezeigt werden (das ? steht dabei fr 0, 1, 2, ...). Die anderen
  Parameter werden nicht abgespeichert (wird setserial mit der Option
  a aufgerufen, werden alle Parameter angezeigt). Von diesem Fehler
  werden nur wenige Anwender betroffen sein, weil diese Parameter nur
  selten verndert werden mssen und die Standardeinstellung in den
  meisten Fllen richtig ist. Der Fehler ist schon lnger bekannt und
  evtl. inzwischen behoben.

  Um die aktuellen, von setserial eingestellten Werte in der
  Konfigurationsdatei /etc/serial.conf zu speichern, ohne dass ein
  Shutdown ausgefhrt wird, knnen Sie das Skript aufrufen, welches
  sonst beim Shutdown aufgerufen wird: /etc/init.d/{set}serial stop. Die
  stop Option speichert die aktuelle Konfiguration, aber die seriellen
  Ports arbeiten ohne Unterbrechung weiter.


  8.1.3.2.

  Die alte Konfigurationsmethode: Editieren eines Skripts

  Vor der Programmversion 2.15 (1999) gab es keine /etc/setserial.conf-
  Datei. Daher war es notwendig, dasjenige Skript zu finden, welches
  beim Booten setserial aufruft und es anzupassen. Wenn ein solches
  Skript nicht vorhanden ist, mssen Sie eine neue Skript-Datei
  schreiben oder die entsprechenden Befehle in ein anderes Skript
  einfgen, welches whrend der Boot-Phase sehr frh ausgefhrt wird.
  Wenn dieses Skript exisitiert, befindet es sich wahrscheinlich
  irgendwo im etc Verzeichnisbaum. Bei Redhat < 6.0 befindet sich eine
  Datei unter /usr/doc/setserial, die Sie jedoch zuerst unter etc
  kopieren mssen. Um ein passendes Skript zu finden, knnen Sie locate
  verwenden, z.B. knnen Sie dazu folgendes eingeben:



       locate "*serial*"




  Frher wurde blicherweise das Skript /etc/rc.d/rc.serial verwendet.
  Die Debian-Distribution verwendete /etc/rc.boot/0setserial. Eine
  andere hufig verwendete Datei war /etc/rc.d/rc.local, allerdings
  sollte diese Datei nicht editiert werden, da sie eventuell nicht frh
  genug ausgefhrt wird. Es ist bekannt, dass andere Prozesse veruchen
  knnen, auf den seriellen Port zuzugreifen, noch bevor rc.local
  aufgerufen wurde. Die Folge ist ein Fehler bei der seriellen
  Kommunikation.

  Falls ein solches Skript mitgeliefert wird, sollte es eine Reihe von
  auskommentierten Beispielen enthalten. Durch entfernen der
  Kommentarzeichen und/oder nderung dieser Beispiele sollte es einfach
  mglich sein, eine richtige Konfiguration zu erreichen. Stellen Sie
  sicher, dass Sie den richtigen vollstndigen Pfadnamen fr setserial
  und die richtigen Namen fr die Gertedateien angeben.  Sie knnen die
  nderungen testen, indem Sie das Skript von der Kommandozeile aus
  aufrufen (als User root). Das geht schneller, als das System
  wiederholt zu booten.

  Wenn sie wollen, dass setserial automatisch den UART-Typ und den IRQ
  fr das Device ttyS3 bestimmt, knnen sie etwa folgendes eingeben:



       /sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig




  Wiederholen Sie diese Anweisung fr jeden seriellen Port, der
  automatisch konfiguriert werden soll. Es muss auf jeden Fall ein
  Device-Name angegeben werden, der auf Ihrem System auch wirklich
  vorhanden ist. In einigen Fllen wird dieser Befehl nicht
  funktionieren (bei bestimmter Hardware); wenn Sie den UART-Typ und den
  IRQ kennen, knnen Sie diese Werte auch explizit zuweisen:



       /sbin/setserial /dev/ttyS3 irq 5 uart 16550A skip_test








  8.1.4.  IRQs

  In der Standardkonfiguration teilen sich ttyS0 und ttyS2 den IRQ 4,
  whrend sich ttyS1 und ttyS3 IRQ 3 teilen. Aber das gemeinsame
  Verwenden eines Interrupts fr die seriellen Ports ist nicht erlaubt,
  es sei denn, Sie haben 1. einen Kernel 2.2 oder hher, und Sie haben
  2. die entsprechende Kernelfunktion auch einkompiliert und 3. die
  Hardware Ihrer seriellen Ports untersttzt die gemeinsame Nutzung von
  Interrupts. Weitere Informationen hierzu finden Sie im Kapitel
  ``Gemeinsame Nutzung von Interrupts ab Kernel 2.2''.

  Wenn Sie ein internes Modem installieren, sich aber die Ports ttyS0
  und ttyS1 erhalten mchten, dann sollten Sie versuchen, einen nicht
  verwendeten IRQ zu finden und diesen sowohl auf dem seriellen Port
  (bzw. der Modem-Karte) einzustellen, als auch mithilfe von setserial
  diesen IRQ dem Gertetreiber zuzuweisen.  Wenn IRQ 5 nicht fr Ihre
  Soundkarte verwendet wird, kann er fr das Modem genutzt werden. Um
  die Hardware auf diesen IRQ einzustellen, knnen Sie isapnp verwenden,
  oder ein PnP BIOS, oder Sie machen aus Linux ein PnP-fhiges
  Betriebssystem. Um herauszufinden, welche freien IRQs es auf Ihrem
  System gibt, knnen Sie in der Online-Dokumentation (Manual Page) von
  setserial z.B. nach IRQ 11 suchen.


  8.2.  Was ist isapnp?

  isapnp ist ein Programm, um Plug-and-Play Gerte auf dem ISA Bus zu
  konfigurieren, dazu gehren auch interne Modems. Es ist im Paket
  isapnptools enthalten und enthlt als weiteres Programm pnpdump.
  pnpdump findet alle ISA PnP Gerte und zeigt die erforderliche
  Konfiguration in einem Format an, welches direkt in die PnP
  Konfigurationsdatei /etc/isapnp.conf eingetragen werden kann. Mit der
  Option --dumpregs kann es auch verwendet werden, um die aktuelle
  I/O-Adresse und den IRQ des vom Modem verwendeten seriellen Ports zu
  bestimmen. Der isapnp-Befehl kann auch von einem Start-Skript
  aufgerufen werden, so dass er bei jedem Start des Computers ausgefhrt
  wird, um die ISA PnP Gerte richtig zu konfigurieren, selbst wenn das
  BIOS Ihres PCs kein PnP untersttzt.  Weitere Informationen finden Sie
  im Plug-and-Play HOWTO.


  8.3.  Was ist wvdialconf?

  wvdialconf versucht zu bestimmen, an welchem seriellen Port ein Modem
  angeschlossen ist. Es erzeugt auch eine Konfiguration fr das Programm
  wvdial, das verwendet werden kann, um auf einfache Weise eine PPP-
  Verbindung mit einem Internet Service Provider (ISP) herzustellen. Sie
  brauchen aber PPP nicht zu installieren, um wvdialconf zu verwenden.
  Es kann nur Modems finden, die gerade keine Telefonverbindung haben.
  Es kann ebenfalls eine passende Initialisierungssequenz
  konstruieren, das funktioniert aber nicht in jedem Fall. Da dieser
  Befehl ber keine Optionen verfgt, ist er einfach anzuwenden, aber
  Sie mssen einen Dateinnamen angeben, unter dem der Init-String und
  andere Daten gespeichert werden, z.B.:



       wvdialconf mein_dateiname








  8.4.  Was ist stty?

  stty hnelt setserial, aber es setzt die Baud-Rate und andere
  Parameter eines seriellen Ports. Der Befehl



       stty -a < /dev/ttyS2




  sollte anzeigen, wie ttyS2 konfiguriert ist. Die meisten Einstellungen
  betreffen Parameter, die Sie mit Modems niemals nutzen werden (z.B.
  bestimmte Einstellungen, die nur fr alte Terminals aus den 70er
  Jahren verwendet wurden). Aber stty ist manchmal hilfreich, um Fehler
  zu finden.

  Zwei der Einstellungen, die mit stty konfiguriert werden knnen sind:
  1. die Hardware-Flusskontrolle durch crtscts und 2. ob das DCD-
  Signal des Modems ignoriert wird (clocal). Wenn das Modem kein DCD-
  Signal sendet und clocal deaktiviert ist (stty zeigt -clocal), dann
  kann ein Programm eventuell den seriellen Port nicht ffnen. Wenn der
  Port nicht geffnet werden kann, reagiert das Programm u.U. nicht
  mehr, weil es (oft vergeblich) auf ein DCD-Signal des Modems wartet.

  minicom setzt clocal automatisch beim Start, hier sind also keine
  Probleme zu erwarten. Aber die Version 6.0.192 von kermit hngt sich
  beim Befehl set line... auf, wenn -clocal gesetzt ist. Wenn kein DCD
  Signal anliegt und -clocal gesetzt ist, hngt selbst stty und es gibt
  anscheinend keine Mglichkeit, um clocal zu setzen (ausser minicom zu
  starten). Aber wenn minicom beendet wird, werden die ursprnglichen
  Einstellungen wieder hergestellt. Ein Ausweg besteht darin, mit Hilfe
  von minicom den Befehl AT&C zum Modem zu senden (um das DCD Signal zu
  erzeugen) und minicom ohne Reset zu beenden, so dass das DCD Signal
  erhalten bleibt. Dann kann erneut stty aufgerufen werden.


  9.  Das Modem ausprobieren

  9.1.  Sind Sie bereit, eine Verbindung aufzubauen?

  Wenn Sie das Modem angeschlossen haben und wissen, an welchen
  seriellen Port es angeschlossen ist, knnen Sie es ausprobieren. Bevor
  Sie eine Verbindung mit dem Internet herstellen oder jemanden bitten,
  Ihr Modem anzurufen, knnen Sie zunchst etwas einfacheres probieren,
  etwa die Anwahl einer Nummer, um zu berprfen, ob Ihr Modem richtig
  funktioniert. Beschaffen Sie sich eine Telefonnummer, von der Sie
  wissen, dass sich am anderen Ende ein Modem befindet. Wenn Sie nicht
  wissen, welche Nummer Sie anrufen knnen, fragen Sie einfach Ihren
  Hndler nach einer Mailbox-Nummer. Vielleicht haben Sie ja auch einen
  Bekannten, der selbst ein Modem besitzt und das Sie fr Testzwecke
  anrufen knnen.

  Wissen Sie, an welchem seriellen Port das Modem angeschlossen ist? Das
  sollten Sie wissen, wenn Sie die Ports mit den richtigen I/O-Adressen
  und IRQs konfiguriert haben. Haben Sie sich fr eine
  bertragungsgeschwindigkeit, die Sie mit diesem Port verwenden
  mchten, entschlossen? Sehen Sie im Abschnitt
  ``Geschwindigkeitstabelle'' nach, um einen schnellen berblick zu
  erhalten oder unter ``Welche  Geschwindigkeit sollte verwendet
  werden?'', um genauere Informationen zu erhalten. Wenn Sie nicht
  wissen, welche Geschwindigkeit Sie einstellen sollen, setzten Sie sie
  einfach auf ein mehrfaches der Modem-bertragungsgeschwindigkeit.
  Aktivieren Sie nach Mglichkeit auch die Option Hardware
  Flusskontrolle bzw. RTS/CTS.  Ist das Modem mit einem passenden
  Telefonkabel mit einer Telefon-Steckdose verbunden? Sie knnen das
  Kabel an ein normales Telefon anschlieen, um sicherzugehen, dass Sie
  einen Whlton hren.

  Nun mssen Sie sich fr ein Terminalprogramm entscheiden, mit dessen
  Hilfe Sie eine Verbindung herstellen knnen. Beispiele dafr sind
  minicom, seyon (X11), und kermit. Im Abschnitt ``Terminalprogramme und
  Hilfsprogramme'' finden Sie weitere Informationen. Zwei
  Terminalprogramme werden in den nchsten Abschnitten nher behandelt:
  ``Anwahl mit Minicom'' und ``Anwahl mit Kermit''.


  9.2.  Anwahl mit Minicom

  minicom ist in den meisten Linux-Distributionen enthalten. Um das
  Programm zu konfigurieren, brauchen Sie root-Rechte. Der Befehl



       minicom -s




  fhrt Sie direkt zu den Konfigurationsmens. Sie knnen auch einfach
  minicom starten und dann ^A (drcken Sie Strg, halten Sie die
  Taste gedrckt, dann drcken Sie kurz a, und lassen dann die
  Strg-Taste wieder los) eingeben, um die untere Statuszeile
  einzublenden. Dort wird angezeigt, dass der Befehl fr Hilfe ^A Z
  lautet (^A haben Sie gerade eingegeben, drcken Sie also einfach
  Z). Vom Hilfemen aus knnen Sie das Konfigurationsmen whlen.

  Um minicom zu konfigurieren, brauchen Sie nur wenige Parameter richtig
  einzustellen: der Name des seriellen Ports, an dem das Modem
  angeschlossen ist (z.B. /dev/tty0), und die
  bertragungsgeschwindigkeit (z.B. 115200). Diese Werte stellen Sie im
  Konfigurationsmen fr den seriellen Port ein. Aktivieren Sie
  ausserdem, falls mglich, die Hardware Flusskontrolle (RTS/CTS).  Als
  Protokoll sollten Sie 8N1 verwenden. Dies bedeutet: 8 Datenbits,
  keine Paritt, 1 Stopp-Bit.  Wenn Sie nicht genau die
  bertragungsgeschwindigkeit finden, die Sie mchten, whlen Sie die
  nchst kleinere aus, fr Testzwecke reicht dies zunchst aus.
  Verlassen Sie das Konfigurationsmen und speichern Sie die
  Einstellungen als Standardeinstellungen (Default, dfl) ab. Sie knnen
  minicom jetzt beenden und neu aufrufen, so dass der richtige serielle
  Port gefunden und das Modem initialisiert wird. ber das Hilfe-Men
  knnen Sie das Modem aber auch sofort initialisieren.

  Nun sind Sie bereit fr die Anwahl. Vergewissern Sie sich aber
  zunchst, dass das Modem richtig angeschlossen ist, indem Sie auf der
  Hauptseite, die unmittelbar nach dem Start von minicom angezeigt wird,
  den Befehl AT eingeben und die <Eingabe>-Taste drcken.  Als
  Resultat sollte OK angzeigt werden. Ist dies nicht der Fall, liegt
  ein Fehler vor und es ist keine Anwahl mglich.

  Wird OK angzeigt, gehen Sie zurck zum Hilfe-Men und whlen Sie das
  Anwahl-Verzeichnis aus (engl: Dialing Directory). Sie knnen nun eine
  Telefonnummer eingeben und dial (engl. fr whlen) selektieren, um
  die Nummer anzurufen. Sie knnen die Nummer auch manuell whlen
  (selektieren Sie manual und geben Sie die Nummer ber die Tastatur
  ein). Beachten Sie genau die Fehlermeldungen, falls etwas nicht
  funktioniert.




  9.3.  Anwahl mit Kermit

  Die neueste kermit-Version finden Sie bei:


       http://www.columbia.edu/kermit/


  Beispiel: Nehmen wir an, Ihr Modem ist an ttyS3 angeschlossen, und die
  bertragungsgeschwindigkeit ist auf 115200 bps eingestellt.  Der
  Dialog am Bildschirm sieht wie folgt aus:



       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                           ; dies ist Ihre Eingabe
       OK                                 ; das ist die Antwort des Modems




  Wenn das Modem auf die AT-Befehle antwortet, knnen Sie davon
  ausgehen, dass das Modem funktioniert. Versuchen Sie nun, ein anderes
  Modem anzurufen, indem Sie folgendes eingeben:


       ATDT7654321




  wobei 7654321 eine Telefonnummer ist. Verwenden Sie ATDP anstelle
  von ATDT, wenn Sie zum whlen Pulswahl anstelle von Tonwahl verwen
  den mssen. In Deutschland sind alle Vermittlungsstellen der Deutschen
  Telekom mittlerweile auf Tonwahl umgestellt, es sollte keinen Grund
  mehr geben, noch die langsamere Pulswahl zu verwenden. Herzlichen
  Glckwunsch, wenn die Verbindung aufgebaut werden kann.


  Um zur kermit-Eingabeaufforderung zurckzukommen, drcken Sie Strg,
  dann Alt Gr - ߫ (den umgekehrten Schrgstrich), lassen Sie Strg
  wieder los und drcken schlielich noch die C-Taste:


       Strg-\-C
       (zurck zu Linux)
       C-Kermit>quit
       #




  Dies war nur ein Test mit der einfachen, manuellen Whlmethode. Die
  normale Methode besteht darin, kermit mit seiner eingebauten Modem-
  Datenbank die Anwahl durchfhren zu lassen. Im folgenden Beispiel wird
  ein US Robotics (USR) Modem verwendet:



       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        ; Modem-Typ auswhlen
       C-Kermit>set line /dev/ttyS3       ; serielle Schnittstelle auswhlen
       C-Kermit>set speed 115200          ; Geschwindigkeit auswhlen
       C-Kermit>dial 7654321              ; Anwahl
        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:





  10.  Konfiguration eines Einwahldienstes

  10.1.  bersicht

  Wenn Sie mit Ihrem Modem eine Verbindung zu einem anderen Rechner
  aufbauen, nutzen Sie damit gleichzeitig einen Einwahldienst auf dem
  anderen Rechner. Ohne diesen Dienst kme keine Verbindung zustande.

  Umgekehrt knnen Sie es anderen Personen ermglichen, Ihr Modem
  anzurufen und Ihren PC zu nutzen. In der Praxis sieht das so aus, dass
  jemand mit einem Modem Ihre Nummer whlt. Ihr Modem nimmt ab und beide
  Modems versuchen, eine Verbindung aufzubauen, indem sie sich auf ein
  bertragungsprotokoll einigen. Wenn die Verbindung steht, kann Ihr PC
  z.B. eine Aufforderung zum Einloggen senden. Der Anfrufer kann sich
  auf Ihrem PC anmelden und dann auf Ihrem PC arbeiten, ganz so, als ob
  er sich direkt an einer Konsole angemeldet htte. Das setzt natrlich
  voraus, dass der Anrufer mit seinem Benutzernamen auf Ihrem PC bekannt
  ist und fr ihn ein entsprechender Benutzer eingerichtet ist. Eine
  andere Mglichkeit besteht darin, dass der Anrufer mit seinem PC
  Zugang zum Internet erhlt, falls Ihr PC eine Verbindung zum Internet
  hat. Das Programm, dass diese Dienste zur Verfgung stellt, heisst
  getty.

  Hufig werden nach einem erfolgreichem Login weitere Programme
  gestartet, z.B. solche Programme, die den Anrufer mittles PPP mit dem
  Internet verbinden. In diesem HOWTO werden diese Programme nicht
  behandelt.

  Der Login-Vorgang kann auch automatisiert werden, so dass das
  Terminalprogramm automatisch den Benutzernamen und das Passwort
  bertrgt.


  10.2.  getty

  getty stellt einen Einwahldienst zur Verfgung. Sie brauchen es nicht,
  wenn Sie mit Ihrem Modem eine andere Nummer anwhlen. Neben der
  Fhigkeit, einen Login-Prompt zu bertragen, kann es auch auf den
  Telefonanruf reagieren. Ursprnglich wurde getty zum einloggen in
  einen Computer von einem einfachen Terminal aus verwendet. Es wird
  jetzt noch verwendet, um sich an einer Linux-Konsole anzumelden. Es
  gibt einige verschiedene getty-Programme mit leicht unterschiedlichen
  Namen. Nur bestimmte Programme stellen eine Einwahlmglichkeit
  zusammen mit einem Modem zur Verfgung. getty wird normalerweise beim
  Booten des System gestartet. Es muss von der Datei /etc/initab
  aufgerufen werden. Eventuell finden Sie in dieser Datei bereits einen
  Aufruf von getty, den Sie aber wahrscheinlich noch anpassen mssen.
  Insbesondere haben die verschiedenen getty-Programmtypen
  unterschiedliche Aufrufparameter.


  Sie knnen aus vier verschiedenen getty-Programmtypen auswhlen, die
  alle fr die Konfiguration einer Einwahlmglichkeit in Verbindung mit
  einem Modem verwendet werden knnen: mgetty, uugetty, getty_em und
  agetty. Einige Details werden in den nchsten Abschnitten behandelt.
  agetty ist das einfachste der vier Typen, hat allerdings auch nur eine
  eingeschrnkte Funktionalitt und wird daher hauptschlich bei einer
  direkten Verbindung mit Textterminals verwendet. mgetty untersttzt
  Fax- und Sprachnachrichten, uugetty dagegen nicht. Angeblich fehlen
  mgetty dagegen ein paar Leistungsmerkmale von uugetty.  getty_em ist
  eine vereinfachte Variante von uugetty. Wenn Sie sich also nicht
  ohnehin schon mit uugetty auskennen, sollten Sie mgetty verwenden.


  10.2.1.  mgetty

  mgetty ist der Nachfolger von uugetty. Beide eignen sich fr den
  Einsatz mit Modems. mgetty kann auch fr direkt angeschlossene
  Textterminals verwendet werden. Neben dem Bereitstellen eines Login-
  Prompts kann mgetty auch mit FAX-Dokumenten umgehen und verfgt ber
  eine automatische PPP Erkennung. Es gibt ein Zusatzprogramm namens
  vgetty, welches zusammen mit einigen Modems eine
  Anrufbeantworterfunktion bernehmen kann. Die mgetty-Dokumentation ist
  ausgezeichnet und nicht Bestandteil dieses HOWTOs. Um PPP automatisch
  zu starten, muss die Konfigurationsdatei /etc/mgetty/login.conf
  angepasst werden.  Informationen zu mgetty finden Sie im WWW unter:


    http://www.leo.org/~doering/mgetty/

    http://alpha.greenie.net/mgetty


  10.2.2.  uugetty

  getty_ps besteht aus zwei Programmen: getty wird fr Textkonsolen und
  Terminalgerte verwendet und uugetty fr Modems.  Greg Hankins (frher
  Autor des Serial HOWTO) verwendete uugetty, daher sind seine
  Erfahrungen mit diesem Programm im Abschnitt ``Uugetty-Konfiguration''
  enthalten.


  10.2.3.  getty_em

  getty_em ist eine vereinfachte Version von uugetty. Es wurde von Vern
  Hoxie geschrieben, weil er die komplexen Konfigurationsdateien fr
  getty_ps und uugetty verwirrend fand.


  Es ist Teil einer Sammlung von mehreren Dienstprogrammen und
  Informationsschriften fr die serielle Schnittstelle von Vern Hoxie.
  Sie ist via FTP erhltlich unter:


       ftp://scicom.alphacdc.com/pub/linux


  Der Name der Datei ist serial_suite.tgz.


  10.2.4.  agetty und mingetty

  agetty ist eine einfache, aber vollstndige Implementierung von getty,
  die sich besser fr virtuelle Konsolen oder Terminals als fr Modems
  eignet. Unter gnstigen Umstnden kann es aber auch mit Modems
  verwendet werden (allerdings knnen Sie keinen abgehenden Anruf
  initiieren, wenn agetty aktiv ist und auf einen Anruf wartet). In der
  Debian-Distribution heisst agetty einfach getty.

  mingetty ist eine kleine Version von getty, die nur fr Konsolen (bzw.
  Monitore) funktioniert, mit Modems kann sie nicht verwendet werden.


  10.3.  Was passiert, wenn sich jemand einwhlt?

  Der Anrufer verwendet ein beliebiges Terminalprogramm, das Ihre Nummer
  whlt und Ihr Telefon lutet. Es gibt zwei Mglichkeiten, wie Ihr PC
  den Anruf entgegennehmen kann. Einmal kann das Modem den Anruf
  automatisch annehmen. Die andere Mglichkeit besteht darin, dass getty
  merkt, dass es lutet, und daraufhin einen Befehl an das Modem sendet,
  den Anruf entgegenzunehmen. Wenn das Modem abgenommen hat, sendet das
  Modem Tne zum anderen Modem (und umgekehrt). Beide Modems einigen
  sich auf ein bertragungsprotokoll, und wenn das erfolgreich ist,
  sendet ihr Modem eine CONNECTed-Nachricht an getty. Wenn getty diese
  Nachricht erhlt, sendet es den Login Prompt ber den seriellen Port.
  Manchmal ruft getty auch ein Programm namens login auf, um den Login-
  Vorgang abzuwickeln.  getty startet blicherweise beim Booten des
  Systems, aber es wartet mit dem Senden des Login Prompts, bis eine
  Verbindung aufgebaut ist.

  Nun noch einige Informationen ber die beiden Mglichkeiten, den Anruf
  anzunehmen.

  Der Wert des S0-Registers im Modem bestimmt, ob und wann ein
  eingehender Anruf beantwortet wird. Mit einem Terminalprogramm kann
  der Wert des S0-Registers mit dem Befehl ATS0? abgefragt werden. Mit
  dem Befehl ATS0=3 wird das S0-Register des Modems auf den Wert 3
  gesetzt, das Modem nimmt den Anruf nach dem 3. mal luten entgegen.
  Steht das S0-Register auf 0, wird das Modem den Anruf nicht
  automatisch entgegennehmen, sondern erst, wenn es von getty oder einem
  Terminalprogramm den Befehl ATA (=Antwort) erhalten hat, whrend es
  lutet. Diese Mglichkeit sollte bevorzugt werden. Wenn das Modem den
  Anruf nicht automatisch entgegennimmt, spricht man von manueller
  Rufannahme, obwohl die Rufannahme von getty automatisch durchgefhrt
  wird.

  Bei manueller Rufannahme ffnet getty den seriellen Port zum
  Zeitpunkt des Systemstarts und hrt auf die serielle Schnittstelle.
  Kommt ein Anruf herein, sendet das Modem eine RING-Nachricht an
  getty. Wenn der Anruf entgegengenommen werden soll, sendet getty einen
  ATA-Befehl an das Modem. Das Modem baut dann die Verbindung auf und
  sendet eine CONNECT..-Nachricht, sobald die Verbindung steht. getty
  kann dann den Login-Prompt zum Anrufer bertragen.


  Bei automatischer Annahme des Anrufs durch das Modem wird das DCD-
  Signal (Data Carrier Detect, d.h. es ist ein Trgersignal zur
  bermittlung von Daten vorhanden) der seriellen Schnittstelle
  verwendet, um zu signalisieren, dass eine Verbindung aufgebaut wurde.
  Zum Zeitpunkt des Systemstarts versucht getty, den seriellen Port zu
  ffnen, aber dieser Versuch schlgt im Allgemeinen fehl, da noch kein
  DCD-Signal des Modems anliegt. getty wartet daraufhin an dieser Stelle
  im Programm, bis ein DCD-Signal auftritt. Wenn das der Fall ist (u.U.
  viele Stunden spter), wird ein Interrupt ausgelst, getty wird aktiv,
  der Port kann nun geffnet werden und getty sendet den Login Prompt.
  Whrend getty auf das DCD-Signal wartet, knnen andere Prozesse ohne
  Beeintrchtigung aktiv sein, da Linux ein Multitasking-Betriebssystem
  ist.

  Vielleicht fragen Sie sich, wie getty im manuellen Rufannahmemodus
  den seriellen Port ffnen kann, schiesslich gibt es ja zu diesem
  Zeitpunkt noch kein DCD-Signal. Nun, es gibt eine
  programmiertechnische Mglichkeit, das ffnen des Ports zu erzwingen,
  selbst wenn kein DCD-Signal anliegt.


  10.4.  Warum die manuelle Rufannahme bevorzugt werden sollte

  Der Unterschied zwischen beiden Mglichkeiten der Rufannahme zeigt
  sich dann, wenn der PC abgeschaltet ist, das Modem aber noch arbeitet.
  Im manuellen Fall wird die RING-Nachricht an getty gesendet, aber da
  der PC nicht luft, gibt es auch keinen getty-Prozess, und der Anruf
  wird nicht entgegengenommen. Es fallen daher auch keine
  Telefongebhren an. Im Fall der automatischen Rufannahme hebt das
  Modem ab, aber es wird nie ein Login-Prompt gesendet, da der PC nicht
  luft. Je lnger der Anrufer auf den Login wartet, umso teurer wird
  seine Telefonrechnung. Zudem ist es frustrierend, auf einen Login zu
  warten, der niemals kommt. mgetty verwendet den manuellen
  Annahmemodus. uugetty kann dies ebenfalls, wenn ein
  Konfigurationsskript verwendet wird.


  10.5.  Rckruf

  Es gibt auch die Mglichkeit eines automatischen Rckrufs. Zuerst ruft
  jemand Ihr Modem an. Sie erhalten dadurch ein paar Informationen ber
  den Anrufer wie z.B. seine Telefonnummer. Der Anrufer legt aber wieder
  auf und wird unmittelbar danach von Ihrem Modem zurckgerufen.  Welche
  Grnde gibt es, dieses Verfahren einzusetzen? Ein Grund ist z.B., um
  Telefonkosten zu sparen, falls Sie den Anrufer gnstiger anrufen
  knnen als er Sie. Ein anderer Grund ist eine hhere Systemsicherheit.
  Mit dem Rckruf kann sichergestellt werden, dass der Anrufer wirklich
  der ist, fr den er sich ausgibt.

  Es gibt fr Linux ein Programm namens callback (engl. Callback =
  Rckruf), das mit mgetty zusammenarbeitet. Es ist zu finden unter

       ftp://ftp.icce.rug.nl/pub/unix.


  Eine Schrittweise Anleitung zur Installation von callback (und PPP)
  ist zu finden unter

       <http://www.stokely.com/unix.serial.port.resources/callback.html>



  10.6.  Sprachnachrichten

  Die Verarbeitung von Sprachnachrichten ermglicht dem PC, als
  Anrufbeantworter zu fungieren. Dazu bentigen Sie ein entsprechendes
  Modem (Voice-Modem) und die passende Software. Anstatt die
  Sprachnachrichten auf Band zu aufzuzeichnen, werden sie in digitaler
  Form auf der Festplatte gespeichert. Wenn Sie einen Anruf erhalten,
  hrt der Anrufer eine Begrungsansage und kann dann eine Nachricht
  hinterlassen.  Die etwas besseren Systeme erlauben je nach Anrufer
  individuelle Begrungstexte und die Sortierung der Nachrichten in
  verschiedene Mailboxen. Fr Linux gibt es bisher nur frei verfgbare
  Software fr einfache Anrufbeantwortersysteme.

  Zwei Anrufbeantworter-Programme sind allgemein bekannt. Das eine
  implementiert nur sehr einfache Funktionen (siehe ``Anrufbeantworter-
  Software''). Das andere Programmpaket ist vgetty, es besitzt zwar
  einen greren Funktionsumfang, ist aber nicht so ausfhrlich
  dokumentiert. Es ist eine optionale Erweiterung zum gut dokumentierten
  und weit verbreiteten mgetty-Programm. Es untersttzt ZyXEL-hnliche
  Modembefehle. Es sieht so aus, als ob vgetty im Moment nicht sehr
  stabil luft, aber es wird erfolgreich eingesetzt und seine
  Entwicklung geht weiter. Falls jemand mehr ber vgetty weiss, wre ich
  fr Hinweise bzgl. des aktuellen Entwicklungsstands sehr dankbar.


  11.  uugetty-Konfiguration (aus dem alten Serial HOWTO)

  Vorab ein Hinweis: mgetty ist eine (bessere?) Alternative zu uugetty.
  Es ist neuer und weiter verbreitet als uugetty.  Abschnitt ``getty''
  enthlt einen kurzen Vergleich zwischen beiden Varianten.


  11.1.  Installation von getty_ps

  Da uugetty ein Bestandteil des Programmpakets getty_ps ist, muss
  zunchst getty_ps installiert werden. Die jeweils aktuelle Version ist
  zu finden unter:

       ftp://metalab.unc.edu/pub/Linux/system/serial


  Mchten Sie hohe bertragungsgeschwindigkeiten nutzen, dann verwenden
  Sie Version 2.0.7j oder hher. Systemvoraussetzung ist libc5.x oder
  hher.


  Standardmig wird getty_ps gem dem Linux FSSTND (File System
  Standard) konfiguriert. Das bedeutet, die ausfhrbaren Programme
  befinden sich im Verzeichnist /sbin, und die Konfigurationsdateien
  heissen /etc/conf.{uu}getty.ttyS0 usw.  Dies geht nicht aus der
  Dokumentation hervor. Die Dateien zur Verwaltung konkurrierender
  Zugriffe (Lock-Dateien) befinden sich im Verzeichnis /var/lock.
  Vergewissern Sie sich, dass das /var/lock-Verzeichnis vorhanden ist.


  Wenn Sie auf FSSTND-Konformitt keinen Wert legen, werden die
  ausfhrbaren Programme in /etc, die Konfigurationsdateien in
  /etc/dafault/{uu}getty.ttyS0 usw. und die Lock-Dateien im Verzeichnis
  /usr/spool/uucp installiert. Ich empfehle diese Vorgehensweise, falls
  Sie UUCP einsetzen, weil UUCP ein Problem hat, wenn die Lock-Dateien
  nicht da stehen, wo sie von UUCP erwartet werden.

  getty_ps kann auch syslogd verwenden, um Meldungen zu protokollieren.
  Falls syslogd auf Ihrem System nicht bereits aktiv ist, knnen Sie
  sich mit man syslogd und mit man syslog.conf ber die Konfiguration
  informieren. Meldungen werden mit der Prioritt LOG_AUTH, Fehler mit
  LOG_ERR und Debug-Informationen mit LOG_DEBUG protokolliert. Falls
  sie nicht syslogd verwenden wollen, knnen Sie auch in der Datei
  tune.h des getty_ps Quellcodes eine andere Protokolldatei angeben,
  /var/adm/getty.log ist die Voreinstellung.
  Entscheiden Sie sich, ob Sie die FSSTND-Konformitt und die syslog-
  Funktionalitt haben wollen. Sie knnen auch entweder das eine oder
  das andere verwenden. Passen Sie die Dateien Makefile, tune.h und
  config.h entsprechend an. bersetzen und installieren Sie dann das
  Paket, wie in der enthaltenen Anleitung beschrieben.


  11.2.  Konfiguration von uugetty

  Sie knnen mit Ihrem Modem eine abgehende Verbindung aufbauen, whrend
  uugetty den Port auf mgliche Login-Versuche berwacht.  uugetty
  bernimmt auch wichtige Prfungen auf Sperrdateien.  Editieren Sie
  /etc/gettydefs und fgen Sie einen Eintrag fr Ihr Modem hinzu. Mit
  dem folgenden Befehl knnen Sie berprfen, ob Ihre nderungen
  syntaktisch korrekt sind:


       getty -c /etc/gettydefs





  11.2.1.  Moderne Modems

  Wenn Sie ein Modem mit mindestens 9600 bps haben, knnen Sie den
  seriellen Port auf eine feste bertragungsgeschwindigkeit einstellen,
  z.B.:


       # 115200 fixed speed
       F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200





  Falls Sie die RTS/CTS Hardware Flusskontrolle verwenden, knnen Sie
  CRTSCTS zu den Eintrgen hinzufgen:


       # 115200 fixed speed with hardware flow control
       F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200





  11.2.2.  ltere, langsame Modems

  Wenn Sie ein altes Modem mit weniger als 9600 bps verwenden mchten,
  mssen Sie anstelle einer Zeile fr eine Geschwindigkeit mehrere
  Zeilen angeben, um verschiedene Geschwindigkeiten zu probieren.
  Beachten Sie, dass die Zeilen untereinander durch das letzte Wort
  verbunden sind (wie z.B. #38000). Zwischen jedem Eintrag muss sich
  eine Leerzeile befinden.










  # 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





  11.2.3.  Login Banner

  Wenn Sie mchten, knnen Sie uugetty interessante Sachen im Login-
  Banner ausgeben lassen. In den Beispielen von Greg sind der
  Systemname, die serielle Leitung und die aktuelle bertragungsrate
  enthalten. Sie knnen aber auch weitere Informationen hinzufgen:



       @B    Die aktuelle bertragungsrate (bps)
       @D    Das aktuelle Datum im Format MM/TT/JJ.
       @L    Die serielle Leitung, an der uugetty angeschlossen ist
       @S    Der Name des Systems
       @T    Die aktuelle Uhrzeit im Format HH:MM:SS (24-Stunden).
       @U    Die Anzahl der eingeloggten User. Dies entspricht der
             Anzahl der Eintrge in /etc/utmp/, die ein nicht-leeres
             ut_name Feld haben.
       @V    Der Wert von VERSION, wie in der Default-Datei angegeben.




  Um ein einzelnes @-Zeichen anzugeben, knnen Sie entweder \@ oder
  @@ angeben.



  11.3.  Anpassung von uugetty an eigene Wnsche

  Fr jeden Port gibt es viele Parameter, an denen Sie herumdrehen
  knnen. Diese Parameter befinden sich fr jeden Port in eigenen
  Dateien. Die Datei /etc/conf.uugetty wird von allen Instanzen von
  uugetty verwendet, und /etc/conf.uugetty.ttyS0 usw. wird nur von
  diesem einen Port verwendet. Beispieldateien sind bei den getty_ps
  Quellcode Dateien zu finden, die Bestandteil der meisten Linux
  Distributionen sind. Aus Platzgrnden sind sie hier nicht aufgefhrt.
  Beachten Sie, dass die standardmige Konfigurationsdatei
  /etc/default/uugetty.ttyS0 usw. ist, falls Sie eine ltere Version von
  uugetty (< 2.0.7e) oder nicht den FSSTND-Standard verwenden. Die Datei
  /etc/conf.uugetty.ttyS3 von Greg sah folgendermaen aus:









  # Beispieldatei zur uugetty-Konfiguration fr ein
  # Hayes-komptibles Modem, erlaubt ankommende Modemverbindungen
  #
  # abwechselnd die Sperrdateien berprfen; wenn die Sperrdatei
  # exisitert, wird uugetty neu gestartet, um das Modem nochmals
  # zu initalisieren
  ALTLOCK=cua3
  ALTLINE=cua3
  # zu initialisierende Leitung
  INITLINE=cua3
  # Zeitspanne, nach der die Verbindung unterbrochen werden
  # soll, falls keine Daten bertragen werden
  TIMEOUT=60
  # Modem Intialisierungs-String
  # format: <expect> <send> ... (chat sequence)
  INIT="" AT\r OK\r\n
  WAITFOR=RING
  CONNECT="" ATA\r CONNECT\s\A
  # diese Zeile legt die Verzgerungszeit fest, bevor das
  # Login Banner gesendet wird.
  DELAY=1
  #DEBUG=010




  Fgen Sie die folgende Zeile in die Datei /etc/inittab ein, so dass
  uugetty auf einem seriellen Port gestartet wird. Tragen Sie die
  richtigen Werte fr Ihre Umgebung ein: Run-Level (2345 oder 345,
  usw.), die vollstndigen Pfadnamen der Konfigurationsdateien, den
  seriellen Port, die bertragungsgeschwindigkeit und den
  standardmigen Terminaltyp:



       S3:2345:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100




  Neustart von init:


       init q




  Als Parameter fr die bertragungsgeschwindigkeit sollten Sie den
  hchstmglichen Wert angeben, den Ihr Modem untersttzt.


  Nun wird Linux den seriellen Port auf eingehende Anrufe berwachen. Zu
  Testzwecken knnen Sie von einem anderen Rechner aus Ihren Rechner
  anrufen und sich auf Ihrem Linux System einloggen.


  uugetty hat noch viele weitere Optionen, die in der Manual Page von
  uugetty (hufig auch einfach getty genannt) vollstndig erlutert
  sind. U. a. gibt es Leistungsmerkmale fr Zeitsteuerung und
  Rckrufmglichkeit.





  12.  Welche Geschwindigkeit sollte verwendet werden?

  Mit Geschwindigkeit meinen wir eigentlich die
  Datenbertragungsrate, aber beinahe jeder sagt einfach (und nicht
  ganz richtig) Geschwindigkeit. Bei modernen Modems haben Sie
  bezglich der Geschwindigkeit, die das Modem auf einer Telefonleitung
  verwendet, gar keine Wahl, da es automatisch die unter den gegebenen
  Umstnden (z.B. Leitungsqualitt) hchstmgliche Geschwindigkeit
  nutzt. Bei der Geschwindigkeit, die zwischen Modem und Computer
  verwendet wird, haben Sie aber sehr wohl eine Wahl. Diese
  Geschwindigkeit wird manchmal auch DTE-Geschwindikeit genannt, DTE
  bedeutet Data Terminal Equipment (oder auf Deutsch:
  Datenendgerteeinrichung), denn Ihr Computer ist ein DTE. Sie mssen
  diese Geschwindigkeit hoch genug einstellen, damit dieser Teil der
  Kommunikationsstrecke keinen Flaschenhals darstellt. Die DTE
  Geschwindigkeit ist immer auf die hchst mgliche Geschwindigkeit fr
  diese Verbindung eingestellt. Meistens wird aber die tatschliche
  erreichte Geschwindigkeit darunter liegen.

  Bei einem externen Modem ist die DTE Geschwindigkeit die
  Datenbertragungsrate (in Bits/s) auf der Verbindung zwischen dem
  Modem und dem PC. Bei einem internen Modem ist es ganz genauso, da das
  Modem auch einen seriellen Port emuliert. Vielleicht erscheint es ein
  wenig seltsam, wenn es eine Geschwindigkeitsbegrenzung fr die
  Kommunikation zwischen Computer und Modemkarte gibt, da die Modemkarte
  ja mit dem Computer ber einen viel schnelleren Bus verbunden ist. Es
  ist aber so, da das interne Modem einen dedizierten seriellen Port
  darstellt, der eben Geschwindigkeitsgrenzen und einstellbare
  Geschwindigkeiten hat.


  12.1.  Geschwindigkeit und Datenkompression

  Welche Geschwindigkeit sollten Sie whlen? Wenn es keine
  Datenkompression gbe, knnte man fr die DTE Geschwindigkeit exakt
  den selben Wert nehmen wie fr die Modemgeschwindigkeit (auf der
  Telefonleitung). Die Datenkompression bewirkt, dass die Anzahl der
  Bytes, die vom Computer zum Modem gesendet werden, in eine kleinere
  Zahl von Bytes komprimiert werden, der Dateninhalt bleibt aber gleich.
  Beispiel: Wenn die Geschwindigkeit vom PC zum Modem 20.000 Bytes/s
  (bps) betrgt, und die Kompressionsrate betrgt 2:1, dann werden nur
  10.000 Bytes/s ber die Telefonleitung bertragen.  Bei einer
  Kompressionsrate von 2:1 mssen Sie also fr die DTE Geschwindigkeit
  das doppelte der maximalen Geschwindikeit auf der Telefonleitung
  einstellen. Betrgt die Kompressionsrate 3:1, mssen Sie die dreifache
  Geschwindigkeit whlen.


  12.2.  Wo wird die Geschwindigkeit eingestellt?

  Die DTE Geschwindigkeit ist normalerweise ber einen Menpunkt in
  Ihrem Terminalprogramm whlbar, oder ber eine Option von getty, wenn
  sich jemand auf Ihrem System einwhlt. Die DCE Geschwindigkeit
  zwischen beiden Modems knnen Sie nicht einstellen.


  12.3.  Es kann keine ausreichend hohe Geschwindigkeit eingestellt wer
  den

  Sie mssen die hchste von Ihrer Hardware untersttze Geschwindigkeit
  herausfinden. Ende 1998 untersttzt die meiste Hardware nur
  Geschwindigkeiten bis 115,2 kbps. Einige wenige interne 56K Modems
  untersttzen 230,4 kbps. Neuere Linux Kernels untersttzen hohe
  Geschwindigkeiten (ber 115,2 kpbs), aber aus folgenden Grnden knnte
  es problematisch sein, diese auch zu Nutzen:

  1. Das Anwendungsprogramm oder stty arbeitet nicht mit dieser hohen
     Geschwindigkeit.

  2. setserial hat eine Standardgeschwindigkeit von 115,2 kbps; aber
     diese Einstellung ist leicht zu ndern.


  12.3.1.  Divisor und baud_base Konfiguration der Hardware auf eine
  Geschwindigkeit: der

  Der Gertetreiber fr den seriellen Port stellt die Geschwindigkeit
  der Hardware durch das Senden eines Divisors ein (eine positive
  ganze Zahl). Dieser Divisor teilt die maximale
  bertragungsgeschwindigkeit der Hardware, das Ergebnis ist eine
  kleinere Geschwindigkeit (mit Ausnahme des Divisors 1, mit dem die
  maximal mgliche Geschwindigkeit eingestellt wird).  Hier ist eine
  Liste von gebruchlichen Divisoren und den entsprechenden
  Geschwindigkeiten (unter der Annahme einer maximalen Geschwindigkeit
  von 115,2  kbps): 1 (115,2k), 2 (57,6k), 3 (38,4k), 6 (19,2k), 12
  (9,6k), 24 (4,8k), 48 (2,4k), 96 (1,2k), etc.

  Wenn Sie eine Geschwindigkeit von 115,2 kbps im Terminalprogramm oder
  mit Hilfe von stty auswhlen, dann stellt der Gertetreiber in der
  Hardware den Divisor 1 ein, der offensichtlich die hchstmgliche
  Geschwindigkeit bewirkt. Wenn Sie Hardware mit einer maximalen
  Geschwindigkeit von z.B. 230,4 kbps verwenden, dann wird die Auswahl
  von 115,2 kbps den Divisor 1 zur Folge haben und es wird in
  Wirklichkeit 230,4 kbps eingestellt. Dies ist das Doppelte der
  Geschwindigkeit, die Sie ausgewhlt haben. Tatschlich wird fr jede
  Geschwindigkeit, die Sie auswhlen in Wirklichkeit die doppelte
  Geschwindigkeit gesetzt. Wenn Sie Hardware htten, die 460,8 kbps
  untersttzen wrde, wrde die tatschliche Geschwindigkeit auf das
  vierfache des von Ihnen ausgewhlten Wertes gesetzt.


  12.3.2.  umgehen Mglichkeiten, das Problem der Geschwindigkeitsein
  stellung zu

  Um diese Berechnungsweise zu korrigieren (aber nicht, um das Problem
  in allen Fllen zu beheben) knnen Sie mit Hilfe von setserial den
  baud_base-Wert auf die tatschliche maximale Geschwindigkeit Ihres
  seriellen Ports setzen, z.B. auf 230,4 kbps.  Wenn Sie im
  Anwendungsprogramm oder durch stty eine Geschwindigkeit von 230,4 kbps
  whlen, wird der Divisor 1 verwendet und es wird die selbe
  Geschwindigkeit gesetzt, die Sie ausgewhlt haben.  Dabei gibt es aber
  ein Problem: stty und viele Terminalprogramme bieten maximal
  115,2 kbps fr die Geschwindigkeit an (Stand: Mitte 1999) und es ist
  nicht mglich, hhere Geschwindigkeiten auszuwhlen. In diesen Fllen
  bleibt Ihnen nichts anderes brig, als auf Einstellungen mit Hilfe von
  setserial zu verzichten und im Hinterkopf zu behalten, dass die
  tatschlich verwendete Geschwindigkeit stets doppelt so hoch ist wie
  die von Ihnen ausgewhlte Geschwindigkeit.

  Es gibt noch einen zweiten Weg, der aber auch nicht viel besser ist.
  Mit dem Befehl



       setserial /dev/ttyS2 spd_cust baud_base 230400 divisor 1




  knnen Sie z.B. fr den Port ttyS2 einen Divisor 1 (d.h. maximale
  Geschwindigkeit) erzwingen, wenn Sie im Terminalprogramm eine
  Geschwindigkeit von 38,4 kbps auswhlen.  Die Verwendung der Option
  spd_cust ist an die Geschwindigkeit 38,4 kbps gekoppelt, nheres
  dazu finden Sie in der Manual Page von setserial.

  Falls Sie zwei oder mehr verschiedene Geschwindigkeiten verwenden
  wollen, die so hoch sind, dass sie im Terminalprogramm nicht
  ausgewhlt werden knnen, ist es nicht mehr so einfach wie oben
  beschrieben. Aber das Prinzip bleibt dasselbe. Sie knnen den
  Standardwert fr baud_base beibehalten und dabei immer bedenken,
  dass Sie in Wirklichkeit einen Divisor bestimmen, wenn Sie eine
  Geschwindigkeit auswhlen. Die tatschliche Geschwindigkeit berechnet
  sich immer aus der maximalen Geschwindigkeit geteilt durch den
  Divisor, den der Gertetreiber setzt.


  12.3.3.  Die Taktfrequenz entspricht nicht dem Wert von baud_base

  Beachten Sie, dass der Wert fr baud_base normalerweise wesentlich
  kleiner ist als die Frequenz des Quarzoszillators der Hardware. Die
  Oszillatorfrequenz wird hufig durch 16 geteilt, erst dieser Wert
  ergibt die tatschliche Maximalgeschwindigkeit. Diese hohe
  Oszillatorfrequenz wird bentigt, damit jedes Bit mehrfach geprft
  werden kann, um zu entscheiden, ob es sich um eine 0 oder um eine 1
  handelt.


  12.4.  Geschwindigkeitstabelle

  Fr ein 56k Modem eignet sich ein 16650 UART am besten, aber nur
  wenige interne Modems oder serielle Schnittstellenkarten sind damit
  ausgerstet. Am zweitbesten ist die Verwendung eines 16550 UART, der
  abgendert wurde, um 230,4 kbps zu untersttzen. Die folgende Tabelle
  enthlt die empfohlenen Geschwindikeiten des seriellen Ports in
  Abhngigkeit der Modemgeschwindigkeit:

    56k (V.90): 115200 bps oder 230400 bps (eventuell einige Prozent
     schneller?)

    28,8k (V.34), 33,6k (V.34): 115200 bps

    14,4k (V.32bis), mit V.42bis Datenkompression: 57600 bps

    9,6k (V.32), mit V.42bis Datenkompression: 38400 bps

    langsamer als 9,6k (V.32): die Schnittstellengeschwindigkeit sollte
     der Modemgeschwindigkeit entsprechen.

  Alle oben angegebenen Geschwindigkeiten knnen die V.42bis
  Datenkompression und die V.42 Fehlererkennung verwenden. Wird keine
  Datenkompression verwendet, kann die Geschwindigkeit auch kleiner als
  angegeben eingestellt werden, so lange sie ber der
  Modemgeschwindigkeit liegt.


  13.  Terminalprogramme und Hilfsprogramme

  Fr den Zugang zum Internet wird am hufigsten PPP verwendet, aber Sie
  bentigen auch ein Wahlprogramm, welches mit PPP zusammenarbeitet.
  Ein Wahlprogramm whlt eine Telefonnummmer. Wenn auf der anderen Seite
  abgehoben wird, passieren drei Dinge: auf beiden Seiten wird PPP
  gestartet, und Sie werden (oft automatisch) eingeloggt. Die genaue
  Reihenfolge kann variieren. Wahlprogramme fr PPP sind z.B.  wvdial,
  chat-Skripte, kppp und gnome-ppp.


  Mit einem Terminalprogramm knnen Sie auch direkt nach draussen
  whlen, z.B. zu ffentlichen Mailboxen. Dies ist aber kein
  Internetzugang. Das beliebteste Terminalprogramm ist minicom, gefolgt
  von seyon (unter X11) und kermit. Ein Terminalprogramm kann u.U. auch
  als Wahlprogramm fr PPP verwendet werden, das ist aber nicht der
  Zweck, fr den Terminalprogramme geschrieben wurden.


  13.1.  Vergleich von minicom und kermit

  minicom ist lediglich ein Terminalprogramm, whrend kermit zustzlich
  ein Protokoll zur Dateibertragung implementiert. Aber man kann das
  kermit-Protokoll von minicom aus nutzen (vorausgesetzt, kermit ist auf
  dem PC installiert). minicom wird ber Mens gesteuert, kermit ber
  Kommandozeilenparameter (bzw. interaktiv ber den kermit-Prompt).
  Whrend das kermit-Programm selbst freie Software ist, trifft dies auf
  die Dokumentation nicht zu. Es gibt kein detailliertes Handbuch. Es
  wird empfohlen, ein entsprechendes Buch zu kaufen und als Handbuch zu
  verwenden. Aber kermit verfgt ber eine interaktive Online-Hilfe, die
  zwar vollstndig ist, aber keine einfhrenden Hinweise fr den
  Anfnger enthlt. Die Befehle knnen auch von einer Skript-Datei
  gelesen werden, so dass sie nicht immer wieder von neuem eingegeben
  werden mssen. kermit als Terminalprogramm ist mchtiger als minicom.

  Die Dokumentation zu minicom ist zwar frei erhltlich, aber weniger
  ausfhrlich als die kermit-Dokumentation. Da eine Genehmigung
  erforderlich ist, um kermit zusammen mit einer kommerziellen
  Distribution auszuliefern, und da die Dokumenation nicht vollstndig
  frei ist, ist kermit bei einigen Distributionen nicht mit enthalten.
  Meiner Meinung nach ist es einfacher, minicom zu verwenden.


  13.2.  Auflistung verschiedener Terminalprogramme

  Es folgt eine Liste einiger Terminalprogramme, die ber FTP erhltlich
  sind, falls sie in Ihrer Distribution nicht enthalten sind.  Fr
  Vergleiche zwischen den Terminalprogrammen wre ich dankbar. Sind die
  weniger verbreiteten Terminalprogramme eventuell berflssig?


  13.2.1.  Weniger verbreitete Terminalprogramme



    ecu - ein Terminalprogramm

    pcomm - procomm-hnliches Terminalprogramm mit ZModem-Protokoll

    xc - das xcomm Kommunikations-Paket


  13.2.2.  Weit verbreitete Kommunikationsprogramme



    minicom - Telix-hnliches Terminalprogramm.  Untersttzt Skripts,
     das ZModem-Protokoll, das Kermit-Protokoll.

    C-Kermit - portabel, Skript-fhig, serielle und TCP/IP-
     Kommunikation, inklusive Dateitransfer, Zeichencodeumsetzung und
     ZModem-Protokoll.

    seyon - Terminalprogramm unter X11





  13.2.3.  Fax



    efax - ein kleines Faxprogramm

    hylafax - ein umfangreiches Faxprogramm, Client-Server basiert

    mgetty+fax - stellt Funktionen fr FAX und Einwahlmglichkeiten zur
     Verfgung


  13.2.4.  Anrufbeantworter-Software



    mvm ist eine minimale Voice Mail Software fr Linux. Das Programm
     ist zu beziehen unter:

       http://www-internal.alphabet.ch/~schaefer/mvm/



    vgetty ist eine Erweiterung zu mgetty, und kann in Verbindung mit
     einigen Modemtypen als Anrufbeantworter-Software eingesetzt werden.
     Es sollte in den neueren mgetty-Paketen enthalten sein.


  13.2.5.  Einwahlserver (unter Verwendung von getty)



    mgetty+fax untersttzt Modems und ist gut dokumentiert (auer die
     Anrufbeantworter-Funktionen, Stand 1999). Es untersttzt auch FAX
     Funktionen und stellt eine Alternative zu uugetty dar.  Es
     beinhaltet auch Anrufbeantworter-Funktionalitt; dabei wird vgetty
     verwendet. Siehe auch ``mgetty''.

    Auch uugetty lt sich mit Modems einsetzen. Es ist Bestandteil des
     getty_ps Pakets. Siehe auch ``uugetty-Konfiguration''.


  13.2.6.  Andere Programme



    Callback-Programme untersttzen folgende Funktion: Sie whlen ein
     anderes Modem an und dieses Modem legt nach erfolgreichem
     Verbindungsaufbau auf und ruft Sie zurck, um Ihnen z.B.
     Telefongebhren zu sparen.

    SLiRP und term laufen mit einer normlen Shell-Benutzerkennung und
     bieten, nlich wie PPP, eine Login-Mglichkeit auf einem anderen
     Computer an. Siehe auch ``term und SLiRP''.

    ZyXEL ist ein Administrationsprogramm fr ZyXEL U-1496 Modems. Es
     verwaltet ein- und abgehende Anrufe, Rckruffunktion zur
     Systemsicherheit, Faxfunktionen und Anrufbeantworter-
     Funktionalitt.

    SLIP und PPP Software ist zu finden unter:

       ftp://metalab.unc.edu/pub/Linux/system/network/serial



    Andere Programme fr die serielle Schnittstelle sind zu finden
     unter

    ftp://metalab.unc.edu/pub/Linux/system/serial

    ftp://metalab.unc.edu/pub/Linux/apps/serialcomm

     oder auf einer der vielen Server, die die Seiten in Kopie
     bereithalten (Spiegelserver, engl. Mirror).


  13.3.  SLiRP und term

  SLiRP und term sind Programme, die dann ntzlich sind, wenn Sie auf
  dem angewhlten Rechner nur eine normale Benutzerkennung haben, aber
  einen hnlichen Dienst wie PPP nutzen wollen, ohne dazu authorisiert
  zu sein (z.B. weil Sie dafr nicht extra bezahlen wollen, etc). SLiRP
  ist beliebter als term, welches schon fast berflssig ist.

  Um SLiRP zu nutzen, mssen Sie es unter Ihrer Benutzerkennung auf dem
  entfernten Rechner installieren. Auf dem entfernten PC ist dann SLiRP
  aktiv, auf dem lokalen PC dagegen PPP. Sie haben nun eine PPP
  Verbindung und knnen z.B. einen Browser wie Netscape auf dem lokalen
  PC verwenden. Es knnen sich aber einige Probleme ergeben, da SLiRP
  nicht genauso gut ist wie ein richtiger PPP Zugang.  Manchmal wird
  SLiRP auch angeboten, weil es IP Adressen spart (Sie brauchen keine IP
  Adresse, wenn Sie SLiRP verwenden).

  term funktioniert hnlich wie SLiRP, nur dass term auf beiden
  Rechnern, d.h. dem entfernten und dem lokalen PC, luft. Es wird auch
  kein PPP verwendet, da term ber sein eigenes Protokoll verfgt. Um
  term auf Ihrem PC zu nutzen bentigen Sie fr term kompatible
  Programme, z.B. eine term-Version von ftp, um FTP zu verwenden etc.
  Daher ist es einfacher, SLiRP zu verwenden, da die normalen Programme
  (z.B. das ganz normale ftp) mit SLiRP funktionieren. Es gibt auch ein
  HOWTO fr term.


  14.  Fehlerursachen erkennen und beheben

  14.1.  Mit meinem 56k Modem erreiche ich keine 56k

  Die Qualitt der Telefonleitung muss schon sehr gut sein, um auch nur
  in die Nhe von 56k zu gelangen. Einige Telefonleitungen sind so
  schlecht, dass die erreichbare Geschwindigkeit weit unterhalb von 56k
  liegt: z.B. bei 28,8k oder noch weiter darunter. Manchmal knnen
  zustzliche Telefonapparate, die an die selbe Leitung angeschlossen
  sind, Probleme verursachen.


  14.2.  Dateibertragungen werden abgebrochen oder sind langsam

  Eventuell ist die Flusskontrolle (sowohl am PC als auch am Modem)
  nicht aktiviert. Wenn Sie eine hohe DTE Geschwindigkeit (z.B.
  115,2 kbps) eingestellt haben, dann kann der Datenfluss von Ihrem
  Modem zum PC gut funktionieren, aber in der anderen
  bertragungsrichtung bildet die Telefonleitung einen Flaschenhals. Das
  Ergebnis sind viele bertragungsfehler und daher mssen viele
  Datenpakete wiederholt gesendet werden. Es kann daher sehr lange
  dauern, eine Datei zu senden. Manchmal ist eine Dateibertragung auch
  gnzlich unmglich.  Wenn Sie groe, nicht komprimierte Dateien oder
  Internetseiten herunterladen und Ihr Modem verwendet Datenkompression,
  oder wenn Sie eine geringe DTE Geschwindigkeit eingestellt haben, dann
  kann das Herunterladen auch abgebrochen werden, weil die
  Flusskontrolle fehlt.

  14.3.  of inittab invalid Bei Verwendung von getty erhalte ich die
  Meldung line NNN

  berprfen Sie, dass die verwendete Syntax fr Ihre Version von init
  stimmt. Unterschiedliche Version von init setzen auch eine
  unterschiedliche Syntax in der Datei /etc/inittab voraus. berprfen
  Sie auch, ob die Syntax fr Ihre Version von getty richtig ist.


  14.4.  Device or resource busy Beim Verbindungsaufbau erscheint die
  Meldung /dev/ttySN:

  Dieses Problem kann auftauchen, wenn die Steuerung der Signale DCD
  oder DTR nicht richtig implementiert ist. Das DCD Signal sollte nur
  dann gesetzt sein, wenn eine Verbindung aufgebaut ist (z.B. wenn sich
  jemand eingewhlt hat), und nicht wenn getty den entsprechenden Port
  berwacht. berprfen Sie, dass das Modem so konfiguriert ist, dass es
  nur dann das DCD signalisiert, wenn eine Verbindung besteht.  Das DTR
  Signal sollte immer dann gesetzt sein, wenn ein Programm den Port
  berwacht, z.B. getty, kermit oder ein anderes Terminalprogramm.

  Eine andere hufige Ursache fr einen device busy-Fehler besteht in
  der fehlerhaften Zuordnung eines IRQ an einen seriellen Port, der
  bereits von einem anderen Gert verwendet wird. Wenn die
  Peripheriegerte initialisiert werden, holen sie sich von Linux die
  Berechtigung, ihren eingestellten Hardware Interrupt zu verwenden.
  Linux verwaltet die Informationen, welcher Interrupt von welcher
  Hardware verwendet wird, und wenn der Interrupt der seriellen
  Schnittstelle bereits vergeben wurde, kann sich die serielle
  Schnittstelle nicht richtig initialisieren. Dabei hat sie kaum die
  Mglichkeit, Ihnen mitzuteilen, dass die Intitialisierung
  fehlgeschlagen ist, ausser bei dem Versuch, sie zu verwenden, indem
  sie die device busy Meldung ausgibt. berprfen Sie die IRQs aller
  Gerte (serielle Schnittstelle, Ethernet Adapter, SCSI Controller
  etc). Achten Sie auf IRQ Konflikte.


  14.5.  disabled for 5 minutes Es erscheint die Meldung Id S3
  respawning too fast:

  Id S3 ist hier nur ein beispielhafter Wert. Suchen Sie in der Datei
  /etc/inittab nach der Zeile, die mit S3 beginnt.  Diese Zeile
  verursacht das Problem. berprfen Sie diese Zeile auf korrekte
  Syntax, und berprfen Sie, dass das Gert ttyS3 existiert und
  gefunden werden kann.

  Stellen Sie auch sicher, dass Ihr Modem richtig konfiguriert ist.
  berprfen Sie die Einstellung der Register E und Q. Das Problem
  kann auftreten, wenn das Modem mit getty kommuniziert.

  Wenn Sie uugetty verwenden, berprfen Sie die Syntax der Datei
  /etc/gettydefs mit dem Befehl



       getty -c /etc/gettydefs





  Dieses Problem kann auch auftauchen, wenn die Initialisierung von
  uugetty fehlschlgt; siehe auch ``uugetty funktioniert noch immer
  nicht''.


  14.6.  Mein Modem spielt nach dem Verbindungsende verrckt, oder
  uugetty startet nicht wieder

  Das kann passieren, falls Ihr Modem sich nicht zurcksetzt, wenn das
  DTR Signal verschwindet. Greg Hankins hat beobachtet, wie die RD und
  SD LEDs in dieser Situation verrckt gespielt haben. Sie mssen Ihr
  Modem zurcksetzen.  Bei den meisten Hayes-Kompatiblen Modems geht das
  mit dem Befehl &D3, aber bei einem USR Courier Modem brauchen Sie
  den Befehl &D2 und S13=1. Schlagen Sie den Reset-Befehl im Modem-
  Handbuch nach.


  14.7.  uugetty funktioniert noch immer nicht

  Zu getty_ps gibt es eine Debug-Option. Erweitern Sie die
  Konfigurationsdatei /etc/conf.{uu}getty.ttyS und fgen Sie die Option
  DEBUG=NNN hinzu. Dabei bedeutet NNN eine der folgenden
  Ziffernkombinationen, je nachdem, was Sie untersuchen wollen:


       D_OPT   001            Einstellung der Optionen
       D_DEF   002            Standard-Dateiverarbeitung
       D_UTMP  004            utmp/wtmp Verarbeitung
       D_INIT  010            Leitungsinitialisierung (INIT)
       D_GTAB  020            gettytab Dateiverarbeitung
       D_RUN   040            andere Diagnosehilfsmittel
       D_RB    100            Fehlersuche ber Rckruffunktion
       D_LOCK  200            uugetty Sperrdatei Verarbeitung
       D_SCH   400            Verarbeitung der Zeitzuordnung
       D_ALL   777            alles zusammen




  Setzen Sie zu Anfang die Option DEBUG=010.

  Falls Sie syslogd verwenden, werden Hinweise zur Fehlersuche in die
  Protokolldateien geschrieben. Falls Sie syslogd nicht verwenden,
  werden Debugging-Informationen von getty in der Datei
  /tmp/getty::ttySN und von uugetty in /tmp/uugetty::ttySN und in
  /var/adm/getty.log protokolliert. Sehen Sie sich diese Informationen
  an und finden Sie heraus, was passiert. Wahrscheinlich mssen Sie
  einige Parameter in den Konfigurationsdateien anpassen und Ihr Modem
  umkonfigurieren.

  Sie knnen es ja auch mal mit mgetty probieren. Manchmal hat man damit
  mehr Glck.


  14.8.  Mein Modem ist zwar physisch vorhanden, kann aber nicht gefun
  den werden

  Falls Sie die seriellen Ports kannten, die vor der Installation des
  internen Modems existierten, dann besteht das Problem darin, den neuen
  seriellen Port zu finden. Dies wird im nchsten Abschnitt behandelt.
  In diesem Abschnitt soll es darum gehen, wie man herausfindet, an
  welchem seriellen Port das Modem angeschlossen ist.

  Es gibt ein Programm namens wvdialconf, das die blicherweise
  verwendeten seriellen Ports auf ein angeschlossenes Modem berprft.
  Geben Sie einfach ein:


       wvdialconf <ein-neuer-Dateiname>


  Die neu angelegte Datei ist eine Konfigurationsdatei fr wvdial, sie
  bentigen diese Datei, wenn Sie wvdial einsetzen wollen; siehe auch
  ``Was ist wvdialconf?''.

  Vielleicht liegt Ihr Problem darin begrndet, dass Sie ein Winmodem
  verwenden, welches unter Linux nicht verwendet werden kann. Siehe auch
  ``Interne Modems, die zu meiden sind''. setserial kann zwar verwendet
  werden, um Informationen ber serielle Ports herauszufinden, aber
  nicht, ob an einem seriellen Port auch ein Modem angeschlossen ist.
  Sie sollten es daher zunchst mit wvdialconf versuchen.

  Eine andere Mglichkeit um herauszufinden, ob an einem Port ein Modem
  angschlossen ist, besteht darin, minicom auf diesem Port zu starten
  (mit dem Befehl ^A0 gelangen Sie in das Men mit den
  Konfigurationseinstellungen). Geben Sie AT ein, und Sie sollten ein
  OK zurckerhalten (bzw. eine 0, falls das Modem auf numerische
  Antwortcodes eingestellt ist). Wenn es einige Sekunden dauert, bis Sie
  eine Antwort erhalten oder wenn sich lediglich der Cursor um eine
  Zeile nach unten bewegt, sehen Sie im Abschnitt ``Text erscheint auf
  dem Bildschirm langsam und nach langer Verzgerung'' nach.


  14.9.  Der serielle Port ist physisch vorhanden, kann aber nicht
  gefunden werden

  berprfen Sie die BIOS Einstellungen und die Meldungen des BIOS. Wenn
  es sich um einen seriellen PnP-Port fr den ISA Bus handelt, knnen
  Sie es mit dem Befehl



       pnpdump --dumpregs




  versuchen und/oder im Plug-and-Play HOWTO nachsehen.  Beim PCI Bus
  sollten Sie einen Blick in die Datei /proc/pci werfen. Sie knnen mit
  Hilfe von setserial ein Probing durchfhren, siehe auch ``Probing''.
  Falls keinerlei Daten ber den Port ausgetauscht werden knnen, obwohl
  er vorhanden ist, liegt es eventuell an einem falschen Interrupt,
  siehe auch ``Text erscheint auf dem Bildschirm langsam und nach langer
  Verzgerung''.


  14.10.

  Text erscheint auf dem Bildschirm langsam und nach langer Verzgerung


  Wahrscheinlich liegt die Ursache in einem falsch eingestellten
  Interrupt oder einem IRQ Konflikt. Im folgenden sind einige der
  Symptome beschrieben, die bei dem Versuch auftreten, zum ersten Mal
  ein Modem, ein Terminal oder einen Drucker zu verwenden.

    In einigen Fllen geben Sie etwas ein, aber es erscheint erst nach
     einigen Sekunden auf dem Bildschirm.

    Oder es wird nur das zuletzt eingegebene Zeichen ausgegeben (und es
     kann sich dabei um ein unsichtbares Zeichen handeln, z.B. das
     <return>-Zeichen, so dass sich der Cursor um eine Zeile nach unten
     bewegt).

    In anderen Fllen ist nur eine ca. 16 Zeichen lange Zeichenfolge
     auf dem Bildschirm zu sehen, obwohl eigentlich eine ganze Menge an
     Daten erscheinen sollte. Dann tritt ein lange Pause von etlichen
     Sekunden ein, bevor die nchsten ca. 16 Zeichen angezeigt werden.

    Vielleicht erhalten Sie auch input overrun Fehlermeldungen oder
     Sie finden Hinweise auf solche Meldungen in den Protokolldateien.

  Weitere Informationen ber die Symptome und Grnde fr diese
  Verhaltensweisen finden Sie im (englischen) Serial HOWTO im Kapitel
  Interrupt Problem Details.

  Um sicherzugehen, dass es sich wirklich um ein Interrupt-Problem
  handelt, knnen Sie den IRQ mit Hilfe von setserial auf Null
  einstellen. Der Gertetreiber wird dadurch angewiesen, statt eines
  Interrupts das sogenannte Polling zu verwenden (mit Hilfe von
  Interrupts kann ein Gert die CPU auf sich aufmerksam machen, wenn
  z.B. Daten zum Lesen anstehen, whrend bei der Polling-Methode die CPU
  von sich aus regelmig am Gert prft, ob Daten vorhanden sind. In
  der Alltagswelt hat z.B. Ihre Trklingel die Funktion eines Interrupt.
  Htten Sie keine Trklingel und wollen keinen Besucher verpassen,
  mten Sie alle paar Sekunden zur Tre gehen und nachsehen, ob jemand
  davorsteht.  Klar, dass Polling ziemlich ineffektiv ist). Wenn das Ihr
  Problem behebt, liegt die Ursache in einem falschen Interrupt. Sie
  sollten auf jeden Fall versuchen, die IRQs richtig zu konfigurieren,
  denn das Polling bentigt extrem viel Resourcen des Rechners.

  Einen Interrupt-Konflikt zu finden, ist nicht immer einfach. Auch ein
  Blick in das /proc-Verzeichnis kann u.U. tuschen. Stellen Sie sicher,
  dass kein IRQ unerlaubterweise gemeinsam genutzt wird.  berprfen Sie
  alle Steckkarten (serielle Karte, Netzwerkkarte, SCSI, usw).
  berprfen Sie die Jumper- (oder PnP-)Einstellungen und die setserial-
  Parameter fr alle seriellen Gerte. berprfen Sie auch die Dateien
  /proc/ioports, /proc/interrupts und /proc/pci auf Interrupt-Konflikte.
  Weitere Informationen zu diesem Thema finden Sie im (englischen)
  Serial HOWTO, Kapitel Interrupt Problem Detail. Informationen bei
  Verwendung von PnP-Hardware finden Sie auch im Plug-and-Play HOWTO.


  14.11.

  Der Startbildschirm zeigt falsche IRQ-Werte fr die seriellen Ports

  Beim Systemstart versucht Linux nicht, die richtige Belegung der IRQs
  herauszufinden. Beim Laden des Gertetreiber-Moduls fr den seriellen
  Port wird nur das serielle Gert berprft. Die zu diesem Zeitpunkt
  ausgegebenen Meldungen knnen Sie bezglich des IRQs ignorieren, weil
  der Gertetreiber immer von der Standardbelegung der IRQs ausgeht. Die
  automatische Erkennung von IRQs ist unzuverlssig und schlgt hufig
  fehl. Wenn aber setserial von einem Startskript aufgerufen wird,
  werden die IRQs gendert und die neuen und hoffentlich richtigen Werte
  werden auf dem Startbildschirm ausgegeben. Wenn also ein falscher IRQ
  bei einer spteren Ausgabe nicht korrigiert wird, haben Sie ein
  Problem.

  Obwohl ich den IRQ fr ttyS2 auf den IRQ 5 eingestellt habe, sehe ich


       ttyS02 at 0x03e8 (irq = 4) is a 16550A




  auf dem Bildschirm, wenn Linux bootet (bei lteren Kernelversionen
  kann ttyS02 evtl. als tty02 angezeigt werden). Sie mssen setse
  rial verwenden, um Linux ber den von Ihnen verwendeten IRQ zu
  informieren.


  14.12.  Cannot open /dev/ttyS?: Permission denied

  berprfen Sie die Dateirechte fr die seriellen Ports mit dem Befehl


       ls -l /dev/ttyS?




  Sie bentigen Lese- und Schreibberechtigung. Die Rechte sollten in
  Spalte 8 und 9 auf rw- gesetzt sein, dies ermglicht jedem den
  Zugriff auf den Port. Mit dem Befehl chmod knnen Sie die Rechte
  verndern. Hufig sind Lese- und Schreibrecht auch nur fr eine
  bestimmte Benutzergruppe z.B uucp gesetzt; Sie mssen dann mit Ihrer
  Benutzerkennung Mitglied dieser Gruppe sein, um Zugriff auf die
  seriellen Ports zu erhalten.


  14.13.  Fehlermeldung fr ttySx: Operation not supported by device

  Dies bedeutet, dass eine von setserial, stty, etc.  ausgelste
  Operation nicht durchgefhrt werden konnte, weil dies der Kernel nicht
  untersttzt. Frher war dies oft der Fall, wenn das Modul fr den
  seriellen Gertetreiber nicht geladen war.  Aber bei Verwendung von
  PnP-Karten bedeutet die Meldung wahrscheinlich, dass sich an der
  Adresse, von der der Gertetreiber (und setserial) ausgeht, kein Modem
  (oder ein anderes serielles Gert) befindet. Befehle, die zu dieser
  Adresse bertragen werden, knnen dann natrlich nicht ausgefhrt
  werden. Siehe auch ``Wie ist die Hardware des seriellen Ports
  eingestellt?''.

  Falls das Modul fr den seriellen Gertetreiber nicht geladen wurde,
  aber lsmod anzeigt, dass dieses Modul geladen ist, dann kann es sein,
  dass das Modul zum Zeitpunkt der Fehlermeldung nicht geladen war.  In
  den meisten Fllen wird dieses Modul automatisch geladen, wenn es
  bentigt wird. Um das Laden des Moduls zu erzwingen, kann es in die
  Datei /etc/modules.conf oder /etc/modules eingetragen werden. Das
  Modul selbst sollte sich unter /lib/modules/.../misc/serial.o
  befinden.


  14.14.  Fehlermeldung Cannot create lockfile. Sorry

  Wenn ein Port durch ein Programm geffnet wird, wird zugleich eine
  Sperrdatei im Verzeichnis /var/lock/ angelegt. Sind die Rechte fr
  dieses Verzeichnis falsch eingestellt, kann keine Sperrdatei erzeugt
  werden. Mit dem Befehl


       ls -ld /var/lock




  knnen Sie die Berechtigungen anzeigen lassen, normalerweise sollte
  drwxrwxrwx eingestellt sein. Mit dem Befehl chmod knnen Sie die
  Berechtigungen ndern. Und natrlich kann auch keine Sperrdatei
  angelegt werden, wenn das Lock-Verzeichnis nicht existiert. Weitere
  Informationen ber Sperrdateien finden Sie im Serial HOWTO im Kapitel
  What Are Lock Files (in Englisch).





  14.15.  Hilfreiche Software


    modemstat und setserial zeigen den aktuellen Zustand verschiedener
     Signalleitungen des Modems an (wie z.B. DTR, CTS, etc.)

    irqtune kann an die von seriellen Ports genutzten Interrupts eine
     hhere Prioritt vergeben, um die Geschwindigkeit zu verbessern.

    hdparm kann helfen, indem Festplattenzugriffe optimiert werden.


  15.  Flash Upgrades

  Fr viele Modems besteht die Mglichkeit eines Upgrades (engl., in
  deutsch etwa: Ausbau der Leistungsmerkmale), indem ein neues Programm
  (das Upgrade-Programm), das z.B. aus dem Internet erhltlich ist, im
  Flash Speicher des Modems abgespeichert wird. Indem dieses Programm
  vom PC ber den seriellen Port zum Modem gesendet wird, wird es vom
  Modem im nicht-flchtigen Speicher abgelegt; d.h. es befindet sich
  auch noch dort, nachdem die Spannungsversorgung unterbrochen wurde.
  Die Anleitungen zur Installationen eines Flash Upgrades beziehen sich
  gewhnlich auf die Arbeit unter Windows, Sie mssen also herausfinden,
  wie das Gleiche unter Linux bewerkstelligt werden kann (wenn Sie das
  Upgrade nicht unter Windows ausfhren). Die bertragung des Programms
  zum Modem wird hufig auch mit Download bezeichnet.

  An dieser Stelle ein Aufruf zur Mitarbeit: wenn es sich bei diesem
  HOWTO um die aktuellste Version handelt (siehe ``Neue Versionen dieses
  HOWTOs'') und Sie Erfahrung mit der Installation eines Flash Upgrades
  haben, so teilen Sie mir diese bitte mit, falls Sie glauben, dass
  diese Informationen auch fr andere interessant sein knnten.

  Im folgenden wird das allgemeine Vorgehen beschrieben: Zunchst gibt
  es eventuell einen Befehl, mit dem Sie dem Modem mitteilen, dass ein
  Flash ROM Upgrade eingeleitet wird. In einem Fall war dies der Befehl
  AT**.  Sie knnen diesen Befehl mit Hilfe eines Terminalprogramms
  (z.B.  minicom) eingeben. Geben Sie zuerst AT <Return> ein, um zu
  sehen, ob das Modem mit OK antwortet.

  Als nchstes mssen Sie eine Datei (manchmal sind es auch zwei
  Dateien) direkt zum Modem bertragen. Terminalprogramme (wie z.B.
  minicom) verwenden hufig das ZModem- oder Kermit-Protokoll, um
  Dateien zum Modem (und darber hinaus) zu bertragen. Aber diese
  Protokolle paketieren die Daten und versehen die einzelnen Pakete mit
  einem Vorspann, wir wollen aber genau diese Datei zum Modem bertragen
  und keine vernderte Version. Aber Kermit verfgt ber ein transmit
  Befehl, der die Datei direkt und ohne Paketierung bertrgt. minicom
  besitzt dieses Feature leider nicht (Stand: 1998).

  Eine andere Mglichkeit, eine Datei direkt zu bertragen, besteht
  darin, vom Terminalprogramm direkt in eine Shell zu wechseln (bei
  minicom ist dies der Befehl ^AJ) und dann einzugeben:



       cat upgrade_file_name > /dev/ttyS2




  (setzen Sie statt ttyS2 Ihren seriellen Port ein).  Wechseln Sie
  zurck zum Terminalprogramm (geben Sie fg an der Eingabeaufforderung
  in minicom ein) um zu sehen, was passiert.


  Hier ist ein Beispiel fr ein bestimmtes Modem von Rockwell (C-a ist
  ^A):

    Starten Sie minicom.

    Geben Sie AT** ein; Ausgabe: Download initiated ..

    C-a J

    cat FLASH.S37 > /dev/modem

    fg: Ausgabe: Download flash code ..

    C-a J

    cat 283P1722.S37 > /dev/modem

    fg: Ausgabe: Device successfully programmed


  16.  Weitere Informationsquellen

  16.1.  Verschiedenes


    Manual Pages fr agetty(8), getty(1m), gettydefs(5), init(1),
     isapnp(8), login(1), mgetty(8), setserial(8).

    Das Handbuch zu Ihrem Modem. Einige Modems werden leider ganz ohne
     Handbuch geliefert.

    Die Serial Suite von Vern Hoxie, erhltlich unter

       ftp://scicom.alphacdc.com/pub/Linux.

  Dies ist eine Sammlung von Tipps und Hinweisen zur Haltung und Pflege
  eines seriellen Ports unter Linux, darunter auch einige einfache Pro
  gramme.

    Die Linux Serial Mailing Liste (in Englisch). Um sich in die
     Mailing Liste einzutragen, senden Sie eine eMail an

       majordomo@vger.rutger.edu

  mit dem Text

       subscribe linux-serial

  Wenn Sie als Text help senden, erhalten Sie eine eMail mit Hilfe-
  Informationen. Dieser Server fhrt ausserdem viele andere Linux Mail
  ing Listen. Wenn Sie eine Liste aller Mailing Listen erhalten wollen,
  senden Sie eine eMail mit dem Text lists.


  16.2.  HOWTOs


     Kabelmodem mini-HOWTO

     ISDN HOWTO
        Beschreibt Treiber fr ISDN-Modems.


     Modems HOWTO
        Eine franzsische Modem HOWTO, die fr diese HOWTO nicht
        verwendet wurde.
     NET-3 HOWTO
        Enthlt alles ber Netzwerke; enthlt auch Informationen zu den
        Protokollen SLIP, CSLIP und PPP.


     PPP HOWTO
        Bietet Hilfe zur Verwendung von PPP, enthlt auch Hinweise zur
        richtigen Modemkonfiguration.


     Serial HOWTO
        Bietet Informationen ber serielle Multiport-Karten, die zum
        Anschluss von mehreren Terminals oder Modems verwendet werden.
        Der serielle Port wird detaillierter besprochen als in diesem
        HOWTO.


     Serial-Programming HOWTO
        Behandelt einige Aspekte der Programmierung des seriellen Ports.


     Text-Terminal HOWTO
        Behandelt auch den Verbindungsaufbau ber Modems.


     UUCP HOWTO
        Bietet Informationen zur Konfiguration von UUCP.


  16.3.  Newsgroups (in englischer Sprache)


     comp.os.linux.answers
        FAQs, HOWTOs, READMEs, usw. ber Linux.


     comp.os.linux.hardware
        Diskutiert werden Fragen bezglich der Hardware-Kompatibilitt
        mit dem Linux Betriebssystem.


     comp.os.linux.setup
        Diskutiert werden Fragen bezglich der Installation und
        Systemverwaltung von Linux.


     comp.dcom.modems
        Modems fr alle Betriebssysteme.


  16.4.  Seiten im Internet


    Liste von Modems, die unter Linux funktionieren/nicht
     funktionieren:

       http://www.idir.net/~gromitkc/winmodem.html



    Informationen ber PCI-Modems, Home Page der Linux-Treiber fr
     serielle Gerte:

       http://serial.sourceforge.net


    Technische Referenz der Hayes AT Modem-Befehle:

       http://www-dcg.fnal.gov/NET/HYSTRM20.TXT


    AT Befehle und Modem-Register fr analoge Modems (Cisco)

       http://www.cisco.com/univercd/cc/td/doc/prod
       uct/access/acs_mod/cis3600/analogfw/analogat.htm


    Steuerung des Modems mit AT Befehlen:

       http://www.zoltrix.com/modem/USEMODEM.HTM


    Modem FAQs:

       http://modemfaq.home.att.net/


    Curts Seite ber Hochgeschwindigkeits-Modems:

       http://www.teleport.com/~curt/modems.html


    Viele Informationen ber 56K-Modems:

       http://808hi.com/56k/


    Links zu verschiedenen Modem Herstellern:

       http://www.56k.com/links/Modem_Manufacturers/


    Weitere Links zu Modem Herstellern:

       http://modmes.rosenet.net/


    Modems durch die FCC ID identifizieren:

       http://www.sbsdirect.com/fccenter.html



  17.  Anhang A: Wie ein Modem technisch funktioniert (nicht fer
  tiggestellt)

  17.1.  Details zur Modulation

  17.1.1.  Einfhrung in die Technik der Modulation

  Unter Modulation versteht man die Konvertierung eines digitalen
  Signals, das aus binren Bits (0 oder 1) besteht, in ein analoges
  Signal, etwa eine Sinuskurve. Das modulierte Signal besteht aus einem
  reinen sinusfrmigen Trgersignal (engl. Carrier), das verndert
  wird, um Informationen zu bertragen. Ein reines Trgersignal, das
  sich weder in der Frequenz noch in der Amplitude verndert, bertrgt
  auch keinerlei Informationen (ausser, dass ein Trgersignal vorhanden
  ist). Um das Trgersignal Informationen bertragen zu lassen,
  verndern (oder modulieren) wir es. Es gibt drei wesentliche
  Modulationstypen: Frequenzmodulation, Amplitudenmodulation und
  Phasenmodulation. Diese Modulationstypen werden in den folgenden
  Abschnitten erklrt.
  17.1.2.  Frequenzmodulation

  Die einfachste Modulationsmethode ist die Frequenzmodulation. Die
  Frequenz wird in der Einheit Schwingungen pro Sekunde angegeben. Es
  ist die Anzahl, mit der sich z.B. eine Sinus-Schwingung pro Sekunde
  wiederholt. Die Frequenz gibt an, wie oft pro Sekunde der maximale
  Ausschlag erreicht wird. Die Einheit der Frequenz ist Hertz
  (abgekrzt Hz, nach dem deutschen Physiker Heinrich Hertz).

  Ein einfaches Beispiel fr Frequenzmodulation bestnde etwa in der
  Festlegung, dass eine bestimmte Frequenz eine 0 bedeutet, und eine
  andere Frequenz bedeutet eine 1. Z.B. bedeutete bei einigen
  (inzwischen berholten) 300 Baud-Modems eine Frequenz von 1070 Hz ein
  binre 0, whrend eine Frequenz von 1270 Hz eine binre 1 darstellte
  (Frequency Shift Keying). Anstelle von zwei mglichen Frequenzen
  knnten aber auch mehr verwendet werden, um mehr Informationen zu
  bertragen. Wrden wir vier verschiedene Frequenzen verwenden (nennen
  wir sie A, B, C und D), knnte jede Frequenz ein Bitpaar darstellen.
  Um z.B. 00 zu senden, knnte man Frequenz A verwenden, fr 01 die
  Frequenz B, fr 10 C und schlielich fr 11 die Frequenz D. In
  gleicher Weise knnten wir mit jedem Wechsel der Frequenz 3 Bits an
  Information bertragen, wenn wir 8 verschiedene Frequenzen verwenden
  wrden. Jedesmal, wenn wir die Anzahl der mglichen Frequenzen
  verdoppeln, knnen wir die Anzahl der bertragenen Bits um eins
  erhhen.


  17.1.3.  Amplitudenmodulation

  Wenn man das obige Beispiel der Frequenzmodulation verstanden hat, bei
  dem mehrere Bits mit einem einzigen Frequenzwechsel bertragen werden,
  ist es einfacher, sowohl die Amplituden- als auch die Phasenmodulation
  zu verstehen. Analog zur nderung der Frequenz der Sinus-
  Trgerschwinung verndert man bei der Amplitudenmodulation die
  Amplitude (oder die Hhe der Spannung). Als einfachste Mglichkeit
  knnten nur zwei mgliche Amplituden erlaubt sein, wobei die eine ein
  0-Bit, die andere ein 1-Bit darstellt. Wie im Fall der
  Frequenzmodulation erklrt, kann mehr Information bertragen werden,
  wenn mehrere erlaubte Amplituden zur Verfgung stehen.


  17.1.4.  Phasenmodulation

  Um die Phase einer Sinusschwingung zu einem bestimmten Zeitpunkt zu
  verndern, stoppen wir das Senden der alten Sinusschwingung und
  beginnen gleichzeitig mit dem Senden einer neuen Schwingung der selben
  Frequenz und Amplitude. Wenn wir die neue Sinusschwingung mit der
  gleichen Spannung (und der gleichen zeitlichen nderungsrate, d.h.
  mathematisch gesprochen mit dem gleichen Wert der 1. Ableitung)
  starten, mit der die alte Schwingung gestoppt wurde, wrde sich keine
  nderung der Phase (oder eine andere messbare nderung) ergeben. Aber
  nehmen wir mal an, wir wrde die neue Sinusschwingung an einem anderen
  Punkt der Sinuskurve starten. Dann wrde wahrscheinlich ein
  pltzlicher Spannungsprung zu dem Zeitpunkt auftreten, an dem die alte
  Schwingung gestoppt wird und die neue beginnt. Dies ist eine
  Phasenverschiebung, die in Grad gemessen wird. Eine Phasenverschiebung
  von 0 Grad (oder 360 Grad) bedeutet keinerlei nderung, whrend eine
  Phasenverschiebung von 180 Grad die Spannung (und Steigung) der
  Sinusschwingung invertiert. Anders ausgedrckt, bedeutet eine 180 Grad
  Phasenverschiebung, dass eine halbe Periode (180 Grad) bersprungen
  wird.  Natrlich knnten wir auch 90 Grad oder 135 Grad berspringen,
  usw.  Wie im Beispiel der Frequenzmodulation erklrt, kann eine
  Phasenverschiebung umso mehr Bits reprsentierten, je mehr mgliche
  Werte fr die Phasenverschiebung zur Verfgung stehen.


  17.1.5.  Kombinationen der Modulationsarten

  Statt eine der drei mglichen Modulationsarten zu auszuwhlen, knnten
  wir auch mehrere Methoden kombinieren. Nehmen wir an, wir htten 256
  mgliche Frequenzen zur Verfgung und knnten daher ein Byte (8 Bits)
  bei jedem Frequenzwechsel bertragen (2 hoch 8 ergibt 256). Nehmem wir
  weiter an, dass wir 256 mgliche Amplituden zu Verfgung haben, so
  dass jeder Wechsel der Amplitude ebenfalls ein Byte reprsentiert.
  Nehmen wir auch noch an, dass 256 mgliche Phasenverschiebungen
  erlaubt sind. Dann knnten wir zu einem Zeitpunkt alle 3 Werte ndern.
  Bei jedem solchen bergang wrden wir 3 Bytes an Information
  bertragen.

  Tatschlich funktioniert keine der heute blichen Modulationsmethoden
  auf diese Weise. Es wrde zu lange dauern, um alle 3 nderungstypen zu
  prfen. Weit verbreitet ist allerdings die gleichzeitige nderung
  sowohl der Phase als auch der Amplitude. Dies wird auch als Phasen-
  Amplituden Modulation bezeichnet (oder quadratische
  Amplitudenmodulation, abgekrzt QAM). Diese Methode wird bei den
  blichen Modemgeschwindigkeiten von 14,4k, 28,8k und 33,6k verwendet.
  Einzig bei 56k Modems wird diese Methode heute nicht verwendet. Aber
  selbst 56k Modems verwenden QAM fr die bertragungsrichtung vom PC
  zur Telefonleitung. Manchmal wird sogar fr die andere
  bertragungsrichtung QAM verwendet, wenn die Leitungsqualitt nicht
  ausreichend gut ist. Daher ist QAM die am weitesten verbreitete
  Modulationsmethode fr normale Telefonleitungen.


  17.2.  56k Modems (V.90)

  Die Modulationsmethode, die oberhalb von 33,6k verwendet wird, ist
  vollkommen anders als die bliche Phasen-Amplituden Modulation. Die
  Signale auf einer normalen analogen Telefonleitung (d.h. kein ISDN-
  Anschluss) werden in der Ortsvermittlungsstelle der
  Betreibergesellschaft (in Deutschland ist dies in der Regel die
  Deutsche Telekom AG) in digitale Signale konvertiert, weil die
  Ortsvermittlungsstellen untereinander digitale Signale austauschen.
  Die hchste erreichbare bertragungsgeschwindigkeit auf einer normalen
  Telefonleitung ist damit begrenzt auf die bertragungsgeschwindigkeit
  zwischen den Ortsvermittlungsstellen, und diese liegt knapp unter
  64kbps. Die vollen 64k werden nicht erreicht, da Bits, die eigentlich
  der Informationsbertragung dienen sollen, fr Signalisierungszwecke
  verwendet werden. Auf einer digitalen Leitung (z.B. ISDN) existieren
  andere Mglichkeiten fr die Signalisierung, so dass hier keine Bits
  gestohlen werden mssen.

  Um die hchst mgliche bertragungsgeschwindigkeit von 64kbps zu
  nutzen, msste ein Modem genau wissen, wie die analogen Signale in der
  Ortsvermittlungstelle in digitale Signale konvertiert werden. Diese
  Aufgabe ist viel zu kompliziert, wenn der Gesprchspartner auch nur
  ber einen analogen Anschluss an seiner Ortsvermittlungsstelle verfgt
  und auch dort wieder eine Konvertierung (diesmal von digital nach
  analog) stattfindet. Falls aber eine Seite ber einen digitalen
  Anschluss verfgt, ist die Aufgabe lsbar (zumindest in einer
  bertragungsrichtung). Falls Ihr Internetanbieter (Internet Service
  Provider, abgekrzt ISP) ber einen digitalen Anschluss an das
  Telefonnetz verfgt, kann er ein bestimmtes digitales Signal ber die
  Telefonleitung zu Ihrem PC senden.  Dieses digitale Signal wird in der
  Ortsvermittlungstelle in ein analoges Signal konvertiert. Wenn Ihr
  Modem in der Lage ist, dieses Signal korrekt zu interpretieren, ist
  prinzipiell ein bertragung mit maximal 64k in dieser Richtung (vom
  ISP zu Ihrem PC) mglich.

  Wie werden in der Ortsvermittlungsstelle der Betreibergesellschaft die
  analogen Signale in digitale Signale konvertiert? Es wird eine Methode
  verwendet, bei der die Amplitude des analogen Signals 8000 mal pro
  Sekunde abgetastet wird. Jeder einzelne dieser Abtastwerte wird in
  einen 8-Bit Wert umgewandelt (d.h. das analoge Signal wird mit nur
  noch 256 mglichen Werten erfasst. Daher kommt der magische Wert: 8
  Bits x 8000 Abtastungen pro Sekunde = 64kbps). Diese Modulationsart
  heisst Puls Code Modulation (PCM). Die entstehenden Datenbytes werden
  ber die digitalen Leitungen der Betreibergesellschaft gesendet, wobei
  sich viele Verbindungen eine Leitung teilen. Mglich ist dies durch
  Anwendung eines bestimmten Schemas, welches vorgibt, zu welcher Zeit
  eine bestimmte Verbindung die Leitung nutzen darf (Zeitmulitplex-
  Verfahren).  Schlielich wird in der Ortsvermittlungsstelle ein
  umgekehrtes Multiplex Verfahren verwendet, um das digitale Signal zu
  erzeugen, welches rsprnglich durch PCM entstanden war. Dieses Signal
  wird in ein analoges Signal verwandelt und zu Ihrem Modem geschickt.
  Jedes Byte erzeugt dabei eine bestimmte Amplitude des analogen
  Signals. Die Aufgabe Ihres Modems besteht nun darin, das rsprngliche
  8-Bit Muster aus der Amplitude des analogen Signals zu rekonstruieren.

  Dies ist eine Art von Amplituden Demodulation, aber diese
  Bezeichnung ist nicht ganz korrekt, weil kein Trgersignal existiert.
  Tatschlich wird das Verfahren mit Modulo-Konvertierung bezeichnet
  und ist genau das Umgekehrte wie PCM. Um die Bitmuster des PCM Signals
  zu rekonstruieren, muss das Modem die Amplitude des analogen Signals
  exakt zu den selben Zeitpunkten abtasten, die zur Erzeugung des
  analogen Signals verwendet wurden. Wie kann das Modem diese Zeitpunkte
  wissen? Die Amplitude des analogen Signals ndert sich 8000 mal pro
  Sekunde (die ursprngliche Abtastfrequenz). Diese nderungen erzeugen
  auf der Telefonleitung ein 4 kHz Signal, aus dem das Modem die
  Abtastzeitpunkte entnehmen kann.

  Nun ist die Kodierung der Amplitudenwerte beim PCM Verfahren nicht
  linear und bei kleinen Amplituden sind die Unterschiede zwischen zwei
  erlaubten Amplitudenwerten ziemlich gering. Um die Unterscheidung
  zwischen zwei nahe beieinanderliegenden Amplitudenwerten zu
  vereinfachen, werden bestimmte Werte nicht verwendet. Die Differenz
  zwischen zwei mglichen Werten wird dadurch grer und die
  Unterscheidung durch das Modem wird einfacher. Bei V.90 wird die
  Hlfte der erlaubten Amplitudenwerte nicht verwendet. Dies entspricht
  einer Kodierung in 7-Bit Werte anstelle von 8-Bit Werten. Daher ergibt
  sich auch die bertragungsgeschwindigkeit von 56k: 7 Bits/Wert x 8000
  Werte pro Sekunde = 56 kbps. Die erzeugten digitalen Werte bestehen
  natrlich weiterhin aus 8 Bits, aber nur 128 der 256 mglichen
  Bitmuster werden tatschlich verwendet.

  Aber es wird noch komplizierter. Wenn die Leitungsqualitt nicht
  ausreichend hoch ist, werden u.U. noch weniger der mglichen Bitmuster
  zur bertragung verwendet, und das bedeutet eine geringere
  bertragungsgeschwindigkeit als 56k. In den USA gibt es zustzlich
  noch gesetzliche Auflagen, die die bertragung von hohen
  Amplitudenwerten ber Telefonleitungen verbieten, was bestenfalls eine
  bertragungsgeschwindigkeit von ca. 53,3 kbps fr 56k-Modems
  ermglicht.

  Beachten Sie, dass der digitale Teil des Telefonnetzes bidirektional
  ist. Die Verbindung zu Ihrem besteht ISP in Wirklichkeit aus zwei
  bertragungskanlen, einer fr jede bertragungsrichtung. Fr die
  Richtung von Ihrem PC zum ISP wird die bliche Phasen-Amplituden
  Modulation mit einer maximalen Geschwindigkeit von 33,6 kbps
  verwendet.  Nur in der Gegenrichtung werden maximal 56 kbps erreicht.


  18.  Anhang B: Baud und bps

  18.1.  Ein einfaches Beispiel

  Baud und bps gehren zu den Begriffen aus dem Computer- und
  Telekommunikationsbereich, die vielleicht am hufigsten falsch
  verwendet werden. Beide Begriffe werden oft gleichbedeutend gebraucht,
  sie sind es aber nicht. bps bezeichnet einfach die Anzahl der Bits,
  die pro Sekunde bertragen werden. Die Baudrate ist ein Ma dafr, wie
  oft sich ein Signal pro Sekunde ndert (oder ndern knnte). Bei einem
  typischen seriellen Port bedeutet eine Spannung von -12 V ein 1-Bit
  und +12 V bedeutet ein 0-Bit. Bei einem Wert von 38.400 bps wird die
  Bitfolge 01010101... ebenfalls einem Wert von 38.400 Baud entsprechen,
  weil auch die Spannung von plus auf minus und wieder zurck zu plus
  wechselt, und sie wechselt 38.400 mal pro Sekunde. Bei einer andere
  Bitfolge, z.B. 111000111..., wird es weniger Spannungswechsel pro
  Sekunde geben, weil fr die drei 1-Bits die Spannung auf einem Pegel
  von -12 V bleibt, dennoch sprechen wir immer noch von einem Wert von
  38.400 Baud, weil die Mglichkeit besteht, dass die Anzahl von
  Spannungswechseln pro Sekunde diesen Wert erreichen knnte.

  Um das Problem von einer anderen Seite zu beleuchten, denken Sie sich
  imaginre Zeitmarken zwischen jedem Bit (auch wenn sich die Spannung
  nicht ndert). Ein Wert von 38.400 Baud bedeutet dann 38.400 dieser
  Zeitmarken pro Sekunde. Die Zeitmarken bezeichnen die Zeitpunkte einer
  erlaubten Spannungsnderung und werden in Wirklichkeit durch ein
  synchronisiertes Taktsignal der Hardware erzeugt, aber nicht ber das
  angeschlossene Kabel bertragen.

  Nehmen wir an, ein Spannungswechsel knnte sich ber mehr als zwei
  erlaubte Werte erstrecken. Nehmem wir weiter an, es gbe vier erlaubte
  Werte. Jeder Wert wrde ein Bitpaar reprsentieren. Z.B.  knnte -12 V
  fr das Paar 00 stehen, -6 V fr 01, +6 V fr 10 und +12 V fr 11. In
  diesem Fall ist die Bitrate doppelt so gro wie die Baudrate. 3000
  Spannungsnderungen pro Sekunde wrden 6000 Bits pro Sekunde
  bertragen, da jede einzelne nderung gleich 2 Bits bertrgt. Mit
  anderen Worten, 3000 Baud bedeuten 6000 bps.


  18.2.  Realistische Beispiele

  Das obige Beispiel ist stark vereinfacht. Beispiele in der Realitt
  sind zwar komplizierter, aber die Idee ist dieselbe.  Das erklrt,
  warum ein Modem mit 2400 Baud 14400 bps (oder mehr) bertragen kann.
  Das Modem erreicht eine hhere bps-Rate als die Baudrate, indem es
  mehrere Bits in eine Signalnderung kodiert.  Wenn also 2 oder mehr
  Bits pro Baud kodiert sind, bersteigt die bps Rate die Baudrate. Wenn
  auf Ihrer Modem-Modem Verbindung 14400 bps bertragen werden, werden
  bei 2400 Baud mit jedem Signalwechsel 6 Bits bertragen. Eine
  Geschwindigkeit von 28800 bps kann bei 3200 Baud mit 9 Bits/Baud
  erreicht werden. Wenn das Wort Baud flschlicherweise gebraucht
  wird, ist evtl. die bertragungsgeschwindigkeit des Modems gemeint
  (z.B. 33,6 kbps).

  Frher hatten die blichen bps-Raten von Modems die Werte 50, 75, 110,
  300, 1200, 2400 und 9600. Das waren auch gleichzeitig die bps-Raten
  auf der Verbindung zwischen seriellem Port und Modem. Heutzutage hat
  die bertragungsrate von Modem zu Modem die Werte 14,4k, 28,8k, 33,6k
  und 56k, aber die bertragungsgeschwindigkeit ber die serielle
  Leitung zwischen seriellem Port und Modem hat nicht die gleichen
  Werte, sondern 19,2k, 38,4k, 57,6k und 115,2k. Bei Modems mit V.42bis
  Datenkompression (max. Kompressionsrate ist 4:1) sind
  bertragungsgeschwindigkeiten bis zu 115,2k bei 33,6k Modems mglich
  (bei einem 56k Modem sind entsprechend 230,4k mglich).

  Mit Ausnahme der 56k-Modems verwenden die meisten Modems 2400, 3000
  oder 3200 Baud. Da Telefonleitungen auf Sprachbertragung ausgelegt
  sind, gibt es Einschrnkungen bei der verfgbaren Bandbreite,
  Baudraten von mehr als 2400 sind deshalb nur sehr schwer zu erreichen
  und setzen eine sehr gute Leitungsqualitt voraus.


  Wie begann die Verwirrung zwischen bps und Baud? Nun, in den alten
  Zeiten, als die langsamen Modems noch als Hochgeschwindikeitsmodems
  angesehen wurden, stimmte die bps-Rate tatschlich mit der Baudrate
  berein. Pro Phasenvernderung wurde ein Bit kodiert. Die Begriffe
  Baud und bps wurden gleichbedeutend gebraucht, weil sie den selben
  Wert hatten. Z.B. hatte ein 300 bps Modem auch eine Baudrate von 300.
  Das nderte sich alles, als schnellere Modems auftauchten, und die
  Bitrate berstieg die Baudrate. Baud ist nach Emile Baudot benannt,
  dem Erfinder des asynchronen Telegraphen. Eine Mglichkeit, mit der
  dieses Problem behoben werden kann ist, den Begriff Symbolrate
  anstelle des Ausdrucks Baud zu verwenden, um damit die Bezeichnung
  Baud zu vermeiden (Mit Symbol ist dann das bertragene Bitmuster
  gemeint).


  19.  Anhang C: Anbindung eines Terminalservers

  Dieser Abschnitt wurde vom Text-Terminal HOWTO bernommen und
  angepasst.

  Ein Terminalserver ist so etwas wie eine intelligente
  Vermittlungsanlage, die in der Lage ist, mehrere Modems oder Terminals
  mit einem oder mehreren Computern zu verbinden. Da die Vermittlung
  nicht mechanisch funktioniert, knnen die Geschwindigkeiten und
  Protokolle der Datenstrme, die durch den Terminalserver
  hindurchgehen, verndert werden. Es gibt eine ganze Reihe von
  Herstellern fr Terminalserver: Xyplex, Cisco, 3Com, Computone,
  Livingstone usw. Es gibt viele Typen und Leistungsklassen.  Es wrde
  den Rahmen dieses HOWTOs sprengen, die Typen zu beschreiben und zu
  vergleichen (ausserdem besteht die Mglichkeit, einen Linux PC als
  Terminalserver zu betreiben). Meistens werden sie fr
  Modemverbindungen und weniger fr direkt angeschlossenen Terminals
  verwendet.

  Ein Einsatzbereich fr Terminalserver besteht darin, viele Modems oder
  Terminals an ein Hochgeschwindigkeitsnetzwerk anzuschliessen, an das
  viele Host Computer angeschlossen sind. Natrlich bentigt der
  Terminalserver ausreichend Rechenleistung und die passende Software,
  um die Netzwerkprotokolle zu untersttzen, und in gewisser Hinsicht
  kann er als Computer angesehen werden. Der Terminalserver kann einen
  Dialog mit der Anwender fhren und z.B. fragen, welcher Computer
  verbunden werden soll usw., oder er kann diese Verbindung ohne
  Rckfrage herstellen. Manchmal werden auch Druckerauftrge ber einen
  Terminalserver gesendet.

  Ein moderner PC verfgt ber gengend Rechenleistung, um als
  Terminalserver zu fungieren, in diesem Falle sollte jeder serieller
  Port allerdings ber einen eigenen Hardware-Interrupt besitzen. PCs
  haben nur wenige Interrupts fr solche Zwecke brig, und weil sie fest
  verdrahtet sind, knnen mithilfe von Software auch keine weiteren
  erzeugt werden. Ein Lsung besteht darin, eine gute serielle
  Multiport-Karte zu verwenden, die ber ein eigenes Interrupt-System
  verfgt (bei Billigmodellen wird ein Interrupt des PCs von mehreren
  Ports gemeinsam verwendet). Weitere Information hierzu finden Sie im
  Serial-HOWTO. Wenn auf einem solchen PC Linux luft und fr mehrere
  serielle Ports ein getty-Prozess gestartet ist, kann er als
  Terminalserver angesehen werden, falls er ber ein Netzwerk mit
  anderen PCs verbunden ist und seine Aufgabe vor allem darin besteht,
  Daten weiterzuleiten. Ein solcher dedizierter PC kann sich darauf
  konzentieren, die Interrupts der seriellen Ports zu bedienen, die (je
  nach Buffer des UART-Bausteins) bei jedem 14. Byte ausgelst werden.
  Manchmal wird eine Software namens radius verwendet.

  Heute werden von Terminalservern mehr als nur Terminals bedient. Sie
  bedienen auch PCs, die Terminals emulieren und sind manchmal mit einer
  Modembank verbunden, die wiederum mit mehreren Telefonleitungen
  verbunden ist. Einige beinhalten sogar eingebaute Modems. Wenn ein
  Terminal (oder ein PC, der ein Terminal emuliert) direkt mit einem
  Modem verbunden wird, kann das Modem am anderen Ende der Leitung an
  einen Terminalserver angeschlossen werden. In manchen Fllen erwartet
  der Terminalserver vom Anrufer standardmig PPP Pakete, die von
  echten Textterminals nicht generiert werden.


  20.  Anhang D: Andere Modemtypen

  Dieses HOWTO beschftigt sich in der aktuellen Version mit dem
  blichen Modemtyp, der verwendet wird, um einen PC mit einer normalen
  analogen Telefonleitung zu verbinden. Es gibt verschiedenen andere
  Modemtypen, auch solche Gerte, die zwar Modem genannt werden, aber in
  Wirklichkeit gar keine Modems sind.


  20.1.  Digitale Modems

  Manchmal wird die Standard-Definition eines Modems erweitert, um auch
  digitale Modems zu erfassen. Viele Privatpersonen und Firmen
  verfgen heute schon ber einen digitalen Anschluss, so dass der
  Computer seine digitalen Signale direkt (oder beinahe direkt) ber die
  Telefonleitung sendet. Aber wird immer noch ein Gert bentigt, um die
  digitalen Signale des Computers in Signale zu konvertieren, die fr
  die Telefonleitung zugelassen sind, und dieses Gert wird hufig Modem
  genannt. Die nchsten beiden Abschnitte, ISDN und DSL beschftigen
  sich mit solchen digitalen Modems.


  20.2.  ISDN-Modems

  Das Modem ist in Wirklichkeit ein Terminaladapter (TA). Von Debian
  gibt es ein isdnutils-Paket. Es gibt auch ein deutsches ISDN HOWTO.
  Es behandelt die Treiber, die fr diese Distribution erhltlich sind.
  Es gibt ein Paket isdn4linux und auch eine Newsgroup:


       de.alt.comm.isdn4linux


  Viele der Beitrge sind in deutsch, da in den USA ISDN nicht so weit
  verbreitet wie in Deutschland.


  20.3.  Digital Subscriber Line (DSL)

  DSL lt sich bersetzen als digitale Teilnehmerleitung.  DSL
  verwendet das existierende verdrillte Leitungspaar (twisted pair)
  zwischen Ihrem Telefonanschluss und der Ortsvermittlungstelle. Es kann
  verwendet werden, wenn die Telefonleitung mit einer hheren
  Geschwindigkeit genutzt werden kann, als von einem normalen Modem
  (z.B. 56k) verwendet wird.  Der Analog-Digital Konverter in der
  Ortsvermittlungstelle wird ersetzt durch einen Konverter, der einen
  sehr viel hheren Datendurchsatz verarbeitet (natrlich in einem
  anderen Format). Das Gert, das die digitalen Signale Ihres Computers
  in diejenigen Signale konvertiert, die auf der lokalen Telefonleitung
  digitale Daten reprsentieren, wird ebenfalls Modem genannt. Dieses
  HOWTO geht in der dieser Version nicht auf die speziellen Aspekte
  dieser Modems ein.






