ABSTRACT: es werden serielle (RS232/V24) leitungen und die programme zum zugriff darauf vorgestellt. (minicom, stty, getty, .. ) weiters gibt es einen kurzen ueberblick ueber AT befehle. AUDIENCE: junior admin SYSTEM: any unix SECTION: basic unix commands AUTHOR: mond COPYRIGHT: GNU Free Documentation Licence http://www.gnu.org/licenses/fdl.txt bevor wir datenuebertragung via ppp-dialin leitungen besprechen koennen zuerst mal die grundlagen: serielle leitungen (auch RS232 oder V24 schnittstellen genannt). eine der aeltesten schnittstellen zur datenuebertragung. der stecker hat entweder 24 oder 9 pole. es gibt eine leitung auf der daten gesendet werden: TxD (transmit data) und eine leitung auf der daten empfangen werden RxD. und eine masse leitung als referenzpotential. (das TxD auf der einen seite muss mit RxD auf der anderen seite verbunden werden und umgekehrt. dazu benoetigt man ein ausgekreuztes kabel - manche schnisttstellen haben auch den stecker schon intern ausgekruezt dann benoetigt man ein "gerades" kabel auf dem die leitungen 1:1 durchverbunden sind) damit kann man schon daten hin und her senden. die daten werden bit fuer bit (seriell) uebertragen ohne ein zusaetzliches protokoll. schliesst man am einen ende ein terminal programm (oder falls man so etwas noch beseitzt: ein echtes hardware terminal) an so sieht man direkt jedes zeichen das ankommt. wie weiss jetzt die eine seite ob die andere ueberhaupt bereit ist noch daten zu empfangen? dazu gibt es 2 arten von handshake: software handshake: die gegenstelle schickt ein bestimmtes zeichen wenn sie keine daten mehr empfangen kann XOFF bzw wenn sie wieder bereit ist das zeichen XON. vorteil: man benoetigt keine zusaetzlichen adern am seriellen kabel als die datenleitung (TxD/RxD). nachteil: die zeichen XON/XOFF duerfen ansonsten nicht im datenstrom vorkommen. hardware handshake: es werden 2 extra leitungen auf dem RS232 kabel benutzt die anzeigen ob die jeweilige gegestelle bereit ist daten zu empfangen: DTR/DSR RTS/CTS) vorteile/nachteile genau umgekehrt zu software handshake lange rede kurzer sinn. jedes dieser seriellen leitungen hat im unix ein device. unter linux: /dev/ttyS0 , /dev/ttyS1 , usw.. /dev/ttyS0 entspricht dabei dem COM1 im dos/windows. wie diese schnittelle in deinem computer aussieht sagt dir das program "setserial": setserial -b /dev/ttyS0 gibt dir die daten der seriellen schnittstelle S0 auf deinem computer aus und wuerde es auch erlauben diese zu aendern.. was normalerweise nicht notwendig ist) wir koennen z.b. mit echo direkt daten auf das port hinausschreiben: echo blabla > /dev/ttyS0 haengt auf der anderen seite vom kabel ein terminal so koenenn wir das blabla dort lesen. vorausgesetzt es passt alles was stimmen muss ist vorallem: * die baudrate: (wie schnell die daten uebertragen werden: typisch z.b.: 9600 oder 19200 baud. 1baud ist hier 1bit/sekunde) * das kabel muss richtig druchverbinden sein. also ausgekruezt oder nicht je nachdem ob die schnittstelle schon ausgekruezt ist oder nicht..) * hardware/software handschake * zahl der bits (normalerweise verwendet man 8 ) die einstellungen des terminals kann man z.b. mit dem program stty veraendern: stty raw crtscts ispeed 9600 ospead 9600 -F /dev/ttyS0 wuerde das port /dev/ttyS0 auf "raw" schalten, hardware hanshake einschalten (crtscts), und die geschwindikgeit auf 9600 baud stellen. direkt mit echo zu komunizieren ist einwenig muehsam. meist verwendet man eher ein terminal programm. z.b. minicom: minicom starte minicom. control-a o kommt man in in optionen menu wo man die terminal einstellungen aendern kann. control-a q beendet minicom wieder ansonsten werden alle tasten eins zu eins an die schnittstelle weitergegeben. wenn die leitung z.b. mit einem anderen computer verbunden ist dann kann man sich via serielle am anderen rechner einlogen.. will man selbst am eigenen rechner ein serielles port zu einer konsole machen auf der man via serieller leitung arbeiten kann dann gibt man in sein file /etc/inittab folgende zeile: T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 und danach: telinit Q jetzt kann man von aussen auf das serielle port ttyS1 mit einem terminal mit 9600 baud zugreiffen. (haengt ein modem an dem rechenr so sollte man statt getty den mgetty verwenden. der kann auch das modem abheben etc..) (achtung: solange der getty auf der leitung laueft kann man die leitung nicht mit minicom oder aehnlichem benutzen da der getty das port blockiert) hat man auf der seriellen leitung ein modem haengen so kann man mit minicom direkt mit dem modem sprechen. die meisten modems sprechen den AT befehlssatz: tippt man AT oder at so antowrte das modem mit: OK die wichtigsten AT befehle sind: ATH1 ... hebt die leitung ab (haengt das modem am telefon hoert man dann das freizeichen) ATH0 ... legt auf ATL1 oder ATL2 stellt meist die lauststaerke ein. ATDT1503; ... ruft die nummer 1503 an (in oesterreich die zeitansage) (der strichpunkt am ende besagt dass das modem keine datenverbindung aufbauen soll.. ) ATDT01404830 ruft die wiener VBS dialinnummer an. (das T steht uebrigens fuer Tonwahl. ist man auf einem uuuuur alten telefonanschluss benoetigt man eventuell pulswahl: P . weiters muss man natuerlich eventuelle vorwahlen zum rauswaehlen auf einer telefonanlage beruecksichtigen.) ATA wuerde einen datenanruf beantworten... ATZ resetet das modem AT&F0 bringt es in die firmen defaultconfiguration hat man via ATDT (oder via ATA) eine datenverbindung aufgebaut so melde das modem "CONNECT" und sagt eventuell die geschwindigkeit. danach ist man mehr oder weniger transparent mit der gegenstelle verbunden... ist auf der anderen seite ein getty am werk so kann man schon einlogen.. heute baut man ueber modem verbindungen aber meist keine direkten terminal verbindungen auf sonder man will ins internet. zu diesem zweck faehrt man auf der seriellen leitung mit dem PPP protokokoll.. das besagt wie man interet packte auf dieser seriellen leitung transportieren soll.. wie das geht lenren wir demnaechst.. EXERCISES: * sieh dir mit setserial die einstellungen deiner seriellen schnittstelle an. * wenn du 2 compuer hast so versuche diese via RS323 schnittstelle zu verbinden. starte auf beiden seiten ein terminal programm (minicom o.ae.). * versuche mit stty die baudrate zu aendern und mit echo direkt auf das port zu schreiben. * installiere einen getty und versuche mit terminal darauf zuzugreifen. danach deinstalliere den getty wieder * haenge ein modem an das port und spiele einwenig mit den AT befehlen. REFERENCES: man setserial man minicom man stty man getty Serial-HOWTO.txt