.titleBar { margin-bottom: 5px!important; }

Seriellen / V24 Port der FB als virtuellen Port auf Windows PC nutzen

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von rusmueller, 21 Juli 2007.

  1. rusmueller

    rusmueller Neuer User

    Registriert seit:
    11 Feb. 2006
    Beiträge:
    108
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Pinzberg
    #1 rusmueller, 21 Juli 2007
    Zuletzt bearbeitet: 21 Juli 2007
    Hallo,

    ich habe am seriellen Port meiner FB eine C-Control Steuerung angeschlossen. Da die C-Control auch nur eine V24-Schnittstelle mit TTL-Pegel hat, reicht ja als Pegelwandler eine Diode aus. Die Programmierung der C-Control erfolgt allerdings von einem Windows Programm aus, welches nur lokale COM-Ports unterstützt. Mangels Pegelwandler ist nun ein Umstecken der C-Control an den Port meines Windows-PC nicht möglich und ich habe eine Möglichkeit gesucht, den COM-Port der FritzBox in meinem Windows-PC "remote" zu betreiben.

    Gesucht und gefunden:
    Grundlage ist die Freeware "HW Virtual Serial Port" von hw-group.com, die unter Windows einen virtuellen COM-Port anlegt und die Daten vom/für den COM-Port auf einen TCP-Port umleitet. Eine passende Gegenstelle für Linux habe ich allerdings nicht gefunden. Und nachdem mir klargeworden ist, dass Realisierungen via bash, xinetd oder pearl auf der FB wohl nicht verfügbar sind, habe ich als Netzwerk-Newbie ein entsprechendes Programm - mein 1. Netzwerkprogramm - geschrieben.

    Ergänzung: Wie ich mittlerweile lernen durfte, arbeitet das Linux-Programm/Projekt ser2net mit der Windows-Software zusammen, damit ist dann eine stabile Lösung für die Anwendung verfügbar.

    Wer das also gebrauchen kann, kann es hier herunterladen, übersetzt habe ich es mit dem ds-mod compiler "gcc -O2 ttytotcp.c" (mit makefiles usw. kenne ich mich nicht aus), ein Binary für die aktuelle Firmware "lege ich bei".
    Das Programm hat die Aufrufparameter:
    -p portnummer (Default ist hier der Port 33333)
    -t tty-port (default ist hier /dev/ttyS0)
    -n macht keine Initialisierung der V24
    -v erzählt was es tut (-v1 ohne Daten)
    Die V24-Parameter sind in dem Programm fest für meine C-Control (9600 Baud...) eingestellt, das kann man mit der Option -n abschalten und per stty vorher selbst machen. Allerdings sind die Einstellungen evtl. etwas kniffelig, da die V24 Daten teilweise erst mit Return weitergegeben werden, was für meine Anwendung (Binärdaten) unbrauchbar war.

    "HW Virtual Serial Port" muss dann auf dem Windows-PC installiert werden, als Einstellungen braucht man in der Lasche "Virtual Serial Port", IP-Adresse der FB, Port und Server Port (beide gleich mit ttytotcp) und den Portnamen. In der Lasche "Settings" sollte man "NVT Enable" abwählen. Und schon kann man in der 1. Lasche mit "Create COM" eine Port anlegen. Und hoffentlich darüber auf den COM-Port der FB zugreifen.
    Ergänzung: ser2net hat bei mit nur mit ports < 10000 funktioniert.

    Das Ganze funktioniert bei mir bisher auf einer 7170 mit USB-seriell Adapter und einer C-Control Station. Der Test mit dem internen Port steht noch aus, sollte aber genauso tun (wenn man die Voraussetzungen dafür geschaffen hat: Kernel ohne V24-Ausgabe...). Und andere V24-Geräte sollten auch tun, dafür muss man dann aber die tty-Einstellungen anpassen.

    Wie gesagt, mein erstes Netzwerkprogramm (vor einer Woche musste ich nur entfernt was ein "socket" ist), da ist sicherlich Verbesserungpotential drin - feel free to do it. Und ich hoffe mit dem Programm keine Sicherheitslücke oder sonstiges Risiko aufgemacht zu haben - also Benutzung auf eigene Gefahr. Und vielleicht gibt's für die Anforderung eine viel einfachere Lösung und ich habe sie nur nicht gefunden...

    Gruss, rusmueller
     

    Anhänge:

  2. derheimi

    derheimi Mitglied

    Registriert seit:
    4 Juli 2006
    Beiträge:
    347
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Beruf:
    Diplominformatiker
    Ort:
    Leipzig
    Hi,
    klingt sehr interessant. Zwei Gedanken meinerseits dazu:
    1.) für Linux gibts auch noch ser2net.
    2.)
    Könnte das daran liegen, dass die Ausgabe gepuffert ist und die Bibliiothek quasi erst mit Auftreten eines Zeilenvorschubs den Puffer entleert? Das kann man m.W. irgendwie abschalten...
     
  3. rusmueller

    rusmueller Neuer User

    Registriert seit:
    11 Feb. 2006
    Beiträge:
    108
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Pinzberg
    #3 rusmueller, 21 Juli 2007
    Zuletzt bearbeitet: 21 Juli 2007
    Hallo, danke für die Info! Ich wusste zwar, dass es ein solches Projekt gibt, allerdings habe ich bei meiner Suche mit der Windows-Seite begonnen und war froh dort eine passende Freeware gefunden zu haben. Das die zu dem Linux-Projekt passen könnte, auf die Idee bin ich gar nicht gekommen... Wollte den Stream eigentlich nur mit "cat </dev/tcp/host/port >/dev/ttyS0" umleiten, das geht aber auf der FB nicht. Dehalb das Program, viel mehr macht das ja auch nicht.
    Hab übrigens ser2net ausprobiert - es tut tatsächlich ebenso (und kann natürlich noch viel mehr)!

    Ja, die Linux-TTY-Einstellungen sind etwas unübersichtlich. Aber irgendwann findet man die richtige Einstellung.
     
  4. WLAN-VoIP-Fan

    WLAN-VoIP-Fan Mitglied

    Registriert seit:
    28 Nov. 2005
    Beiträge:
    594
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    tty von Konsole befreien - für freie Kominkation mit seriellem Gerät

    Hi,

    kann man den die tty der FritzBox mit der Bindung zur Konsole trennen?
    Weil stört die Konsole müsste doch die Komunikation mit der C-Controll oder einem sonstigen seriellen-Gerät an der tty (meist dann noch ein Pegelwanlder rein MAX232 und Co. :) ) stören oder?

    Gruß.
     
  5. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Es gibt Möglichkeiten dazu, aber die Ausgabe beim Start der Box läßt sich damit nicht verhindern. Daher ist es geschickter, einen unterstützten USB-Seriell Adapter zu verwenden.
     
  6. WLAN-VoIP-Fan

    WLAN-VoIP-Fan Mitglied

    Registriert seit:
    28 Nov. 2005
    Beiträge:
    594
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi,
    [Edit frank_m24: Sinnfreies Fullquote vom Beitrag direkt darüber gelöscht. Lies noch mal die Forumregeln.]

    Wie geht das mit dem abschalten?

    Danke.
     
  7. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wenn man sich per Telnet mit der Box verbindet, wird die Konsolen-Ausgabe auf die telnet-Verbindung umgeleitet. Das läßt sich sicher auch automatisieren, auch wenn ich dafür nichts fertiges habe. Man müßte dafür ein PTY öffnen und darauf die Meldungen der Konsole umlenken.

    Evtl. kann man auch die Kernel-Meldungen beim Start unterdrücken, notfalls mit einem modifizierten Kernel.

    Vorher kommen aber noch die Meldungen vom Bootloader, und die bekommt man ohne eine Modifikation des Bootloaders wohl nicht weg.
     
  8. WLAN-VoIP-Fan

    WLAN-VoIP-Fan Mitglied

    Registriert seit:
    28 Nov. 2005
    Beiträge:
    594
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi,
    [Edit frank_m24: Sinnfreies Fullquote vom Beitrag direkt darüber gelöscht. Lies noch mal die Forumregeln.]

    wieviel Mühe / Arbeit / Zeit kostet das einen Linux-Profi?
    Und könnte das einer hier im Forum mal machen / erklären?

    Gruß.
     
  9. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    1. Relativ einfach, kann man beim telnetd-Programm nachsehen, wie es geht.

    2. Weiß ich nicht sicher, entweder Konfiguration der serielle Konsole im Kernel entfernen oder die Ausgabe-Funktion entfernen.

    3. Schwierig bis nicht möglich.
     
  10. rusmueller

    rusmueller Neuer User

    Registriert seit:
    11 Feb. 2006
    Beiträge:
    108
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Pinzberg
    Hallo,
    Ich habe eine USB-seriall Adapter an einer 7170, damit gibt's diese Probleme nicht.

    Ich experimentiere aber auch mit einer C-Control an einer FritzBox Fon.
    - Der Bootloader stört mich nicht, ich schalte die C-Control mit der Fritzbox ein (die CC bekommt die Spannung aus der FB) und die C-Control bleibt auf der V24 "solange ruhig", bis ich die Kommunikation über eine definierte V24-Kommandosequenz einschalte.
    - Ich verwende auf der Box ds-mod, die Kernelmeldungen habe ich mit einer config-option ("serielle Console" oder so) abgeschaltet.
    - Die Umleitung mit telnet habe ich auch schon gemacht, und zwar einfach von der Box auf sich selbst (da es kein telnet auf der Box hab ich das mit nc gemacht). Allerdings widerstrebt mir eine solche Lösung prinzipiell, deshab hab ich's dann doch per Kernel gemacht.


    Gruss, Reiner
     
  11. WLAN-VoIP-Fan

    WLAN-VoIP-Fan Mitglied

    Registriert seit:
    28 Nov. 2005
    Beiträge:
    594
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi,

    was macht den deine C-Control zu feienes an der FritzBox?
    Hast du mal ein paar Fotos?

    Gruß.
     
  12. rusmueller

    rusmueller Neuer User

    Registriert seit:
    11 Feb. 2006
    Beiträge:
    108
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Pinzberg
    Hallo WV-Fan,

    zum einen habe ich eine CControl Station per USB->seriell angeschlossen und kann deren Daten (Temperatursonsoren usw.) auf meiner Homepage einsehen. Z.B. ob meine Heizung noch läuft - die fällt leider manchmal aus, meist im tiefsten Winter und im Urlaub... Bisher ist die Anzeige aber leider im Textmode (cgi-script), weil ich keine Ahnung von HTML und Co habe. Und wenn ich es mal schaffe einen Button anzuzeigen und auszuwerten, werde ich damit meinen Uralt-Laserdrucker fernschalten können, dann müssen meine Töchter nicht immer dazu runterrennen.

    Zum anderen möchte ich ein kleines Bedienpanel an die FB bauen, um z.B. die entgangenen Anrufe abrufen zu können, ohne immer einen Rechner einschalten zu müssen. Hier bin ich aber inzwischen von CControl auf AtMega umgestiegen (mag kein Basic und CC und deren Peripherie ist teuer) hab ein 4*27 Zeilen Display und ein paar Tasten zur Bedienung angeschlossen und ein kleines Besy geschrieben. Der Aufbau ist aber noch auf Steckboard und die Fritzbox-Seite fehlt noch komplett. Ich mache das so als Winterprojekt und "zum lernen", z.Z. ist aber Garten- bzw. Autoreperatursaison. Fotos machen also nicht viel Sinn. Vielleicht im nächsten Jahr...

    Viel Erfolg beim "Ideen sammeln",

    Gruss, Reiner