Ausgabe auf RS232

  • An meiner DM7020 habe ich bisher einen von mir selbst gebauten RGB-Controller betrieben der die Plexiglasböden meines Fernsehschranks in allen möglichen Farben erstrahlen ließ.
    Die Befehle an den Controller wurden über die serielle Schnittstelle der Box gesendet.
    z.B. echo 0 255 0 128 /dev/ttys0


    Ich habe seit gestern eine DM800. Dort gibt es das device ttys0 nicht mehr. Ich habe gelesen, dass das serial port nicht mehr "offen" ist und das die serielle Schnittstelle nur dafür da ist um firmware in die Box zu laden und um Log-Meldungen auszugeben.
    Hat man von Enigma2 wirklich keinen Zugriff mehr auf die RS232? Ich frage mich wie dann die Log-Meldungen auf die Schnittstelle kommen.
    Ich benötige ja vorerst nur eine Ausgabe auf die RS232 und muß nichts lesen. Könnte ich das irgendwie über die Log-Ausgaben machen?
    Ich habe es schon mit "echo 0 255 0 128 /dev/console" probiert, doch leider ohne Erfolg.
    Als Alternative könnte ich auch einen USB->seriell -Adapter verwenden. Ich würde es aber lieber direkt über die serielle Schnittstelle der DM800 machen.


    Ich hoffe es kann mir da jemand weiter helfen.


    Gruß Markus

  • Ich hab die 800er jetzt nicht dran, aber auf der dm8000 geht es so:

    Code
    echo 0 255 0 128 > /dev/tts/0


    (sieht nach 9600Bd aus)

    Hilfe gesucht ? schau mal ins Gemini Project WIKI, auch unsere Video Tutorials sind für den Einstieg sehr empfehlenswert


    Nur wer die Weisheit mit Löffeln gefressen hat, kann auch klugscheißen. :klugscheiss:
    Alte asiatische Weisheit (wahrscheinlich Plagiat): Ohne Fleiß kein Scheiß. (Ich übernehme keine Garantie für Fehlerfreiheit der Übersetzung)
    "Alle großen Männer sind bescheiden." Gotthold Ephraim Lessing
    "Ich bin nur einsvierundsechzig"adenin
    "Es reicht nicht, Sachen falsch zu verstehen. Man muss sie richtig falsch verstehen."adenin
    "Friends: You Have 0 Friends"facebook

  • ja, normalen ascii code kannst ud problemlos rausschreiben, sonst ginge ja kein console output über ein nullmodemkabel auszugeben.


    Nur ascii text lesen geht übrigens auch denke ich mal.


    Wenn du also nur eine text schnittstelle und keine exotischen handschakes benutzt sollte auch der comport der 8* zu benutzen geben - nur den console=/dev... parameter im Bios solltest du dann nicht benutzen.

  • Das Device /dev/tts gibt es auf meiner DM800 nicht. Liegt das vielleicht daran, dass im BIOS der Parameter console=/dev... eingetragen ist und würde das Device auftauchen, wenn ich den Parameter im BIOS entferne?
    Was für Auswirkungen hätte das dann, würden die Log-Meldungen beim Booten noch auf die serielle Schnittstelle ausgegeben?
    Mit welchen Befehl kann man denn im Enigma2 Log-Meldungen auf die RS232 ausgeben? Vielleicht kann ich ja diesen Mechanismus benutzen ohne den Parameter im BIOS zu löschen.


    Gruß Markus

  • Was ist die richtige Variante um z.B. den String "0 255 0 200" auf die serielle Schnittstelle auszugeben (Parameter console=/dev/ttys0)?


    so...


    echo 0 255 0 200 | logger


    oder so...


    echo 0 255 0 200 1>&2


    oder ganz anders?

  • Ich habe am WE mal beide Varianten ausprobiert. Leider funktioniert keine von beiden.
    Merkwürdig finde ich auch dass während des Bootens und während des Betriebs keine Logmeldungen auf der seriellen Schnittstelle erscheinen. Nur direkt nach dem Einschalten der Box werden Ausgaben auf die RS232 gemacht (vom 1st und 2nd stage bootloader glaub ich), danach nicht mehr.
    Ich habe die Kernel Command Line Parameter mal auf console=null ... gesetzt in der Hoffnung dass dann das Device ttyS0 unter /dev auftaucht. Leider war das auch nicht der Fall.
    Werden bei euch auch nur so wenige Ausgaben auf die serielle Schnittstelle beim boote gemacht? Meine gute alte DM7020 hat da ständig Ausgaben gemacht, z.B. wann die ganzen Daemons und Server gestartet werden und die HDD gemounted wird.


    Hat denn jemand von euch schonmal eine Ausgabe auf die serielle Schnittstelle der DM800 gemacht und kann mir weiterhelfen?


    LG Markus

  • Ja hab ttyS0 als allererstes probiert, aber das Device gibt es nicht. Die Eingabe von z.B. "echo test > /dev/ttyS0" liefert die Fehlermeldung "-sh: cannot create /dev/ttyS0: Permission denied" (bin als root eingeloggt).


    tty ist nicht die RS232. Wenn ich "echo test > /dev/tty" eingebe erscheint die Ausgabe "test" im Terminalfenster.


    Den Thread "Serial port bei der 600er zu?" kenne ich schon. Die Hauptaussage dort ist, dass die RS232 mit der Console verknüpft ist und nur für Log-Ausgaben verwendet wird. Das dort erwähnte LCD-Plugin, welches auch über die serielle Schnittstelle kommuniziert ist nur für Enigma1.


    Hat noch jemand eine Idee?

  • Vielen Dank für eure Antworten.


    mgck: Werde ich erst nächste Woche ausprobieren können, da ich gerade in Tokio bin. Aber ich denke ich habe das schonmal probiert und es hat leider nicht funktioniert (KernelCommandLine war damals: console=ttyS0,115200 ip=10.0.120.203 nfsroot=10.0.120.77:/home/tmbinc/target/mips root=/dev/nfs rw)
    Ich werde es einfach nochmal probieren.


    mod1911: Wäre eine Lösung, aber ich möchte es erstmal ohne versuchen.

  • Ich bin zurück aus Tokio und habe es eben gerade mal ausprobiert. Mein Fehler war, dass ich "Change Command Line" im BIOS nach dem editieren der Kernel Command Line immer wieder auf DISABLE gestellt habe.
    Jetzt habe ich es auf ENABLE stehen lassen und jetzt klappt es endlich.


    Noch ne andere Frage. Ist es möglich die Baudrate auf 9600 umzustellen? Ich habe in der Kernel Command Line mal 9600 statt 115200 eingetragen, aber die Kommunikation läuft trotzdem auf 115200 Baud.