Seriell nach Seriell via Shellscipt

  • Ich habe hier einen Rechner mit einer RS232 Schnittstelle, ttyS0.
    Ausserdem ist an dem Rechner ein USB zu seriell Adapter angeschlossen, ttyUSB0.
    OS ist Ubuntu 14.04.
    Als Benutzer habe ich keinen Zugriff auf die seriellen Schnittstellen gehabt, daher habe ich den Benutzer der Gruppe dialout zugefügt.
    Damit ging dann ttyS0. Bei der ttyUSB0 heisst es immer noch keine Berechtigung, da darf ich nur als root drauf.
    Macht das Sinn?


    Zum eigentlichen Problem...
    Ich möchte über ein Nullmodemkabel einen Text von einer seriellen Schnittstelle zur anderen schicken.
    Ich habe ein Nullmodemkabel zwischen die beiden Schnittstellen gehängt und kann wenn ich z.B. picocom auf ttyS0 starte (als root) mit echo "blabla" > ttyUSB0 auf der Picocom Konsole den Text sehen.
    Ich hätte aber gern ein Shellscript, welches mir das automatisch erledigt.
    Also initialisieren der seriellen Schnittstelle, Aufruf der seriellen Konsole für ttyUSB0 und senden eines Textes über das Nullmodemkabel. Problem ist: ab dem Moment wo ich picocom im Shellscript starte, werden die darauf folgenden Befehle nicht mehr ausgeführt.
    Wie lässt sich sowas realisieren?

  • Damit ging dann ttyS0. Bei der ttyUSB0 heisst es immer noch keine Berechtigung, da darf ich nur als root drauf.
    Macht das Sinn?

    Ob das Sinn macht weiß ich nicht, aber mit welcher Berechtigung wird denn /dev/ttyUSB0 angelegt? Bei mir wird auch ttyUSBx mit den gleichen Berechtigungen wie ttyS0 angelegt:

    Code
    crw-rw---- 1 root dialout   4, 64 10. Mär 09:09 /dev/ttyS0
    crw-rw---- 1 root dialout 188,  0 10. Mär 12:50 /dev/ttyUSB0


    Und nicht vergessen nach dem Hinzufügen eines User zu einer Gruppe aus- und wieder einzuloggen...


    Also initialisieren der seriellen Schnittstelle, Aufruf der seriellen Konsole für ttyUSB0 und senden eines Textes über das Nullmodemkabel. Problem ist: ab dem Moment wo ich picocom im Shellscript starte, werden die darauf folgenden Befehle nicht mehr ausgeführt.
    Wie lässt sich sowas realisieren?

    Also, dass nach einem Aufruf von picocom (oder irgendeinem anderen Befehl) das Script so lange nicht weiter läuft, bis der Befehl beendet ist, ist doch wohl klar, oder? Ich verstehe noch nicht ganz, was Du vorhast, aber vielleicht solltest Du picocom (oder auch ein einfaches "cat /dev/ttyS0") in einem neuen Terminalfenster mit z.B. "&" starten, dann öffnet sich halt ein neues Fenster und das Script läuft einfach weiter. Initialisieren der Schnittstellen kannst Du im Script einfach mit "stty -F /dev/ttyXXX".


    Ich hoffe das hilft Dir weiter. Ansonsten musst Du mal genauer erklären, wass Du denn vorhast.


    Gruß Darkstar.

    Hardware: Seagate Dockstar@1500MHz, GSS Box DSI 400 SAT>IP Server, VDR 2.1.6 mit Streamdev-Server
    Videoausgabe: RaspberryPi mit MLD-4.0.1-RPi an LG 42LM660

  • Hallo,
    Danke für den Hinweis - es ist in dert Tat so, dass auch bei mir die Schnittstellen mit den gleichen Berechtigungen angelegt werden.
    Kurioserweise ging es dann auch plötzlich.


    Zitat:


    ...aber vielleicht solltest Du picocom (oder auch ein einfaches "cat /dev/ttyS0") in einem neuen Terminalfenster mit z.B. "&" starten, ...


    Danke - das funktioniert. :)
    Es geht bei der ganzen Sache um einen einfachen Test von Schnittstellenwandlern.
    Das Nullmodemkabel steht derzeit nur stellvertretend für die Kette RS232->K-Line->RS485->RS232 .
    Die Bastelei ist dann auch nur unidirektional, deshalb reicht es mir wenn ich von einer Konsole auf die andere schreiben kann.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!