Dateien über serielle Verbindung nach Linux kopieren, WIE?

OP Persönliche Seite #1578185
Ich habe hier ein Linuxboard ohne Netzwerkzugang um Dateien zu kopieren. 
Nun nutze ich GTK-Term als Terminal um darauf zuzugreifen. Dort gibt es 
die eine Funktion um Dateien im RAW-Format zu senden.

Nun meine Frage, gibt es eine Möglichkeit um damit Daten zu übertragen? 
Ich kann allerdings die Konsole nicht von der seriellen Schnittstelle 
nehmen. Am besten wäre natürlich ein Programm, welches ich laufen lasse, 
Datei senden und Programm beendet sich wieder und ich habe wieder 
Zugriff auf meine Konsole.

Ich hoffe einer von euch kann mir da weiterhelfen!
Gast
> Nun nutze ich GTK-Term als Terminal um darauf zuzugreifen. Dort gibt es
> die eine Funktion um Dateien im RAW-Format zu senden.

Ein cat > datei auf dem Board, dann senden im Gtkterm wird vermutlich 
nicht richtig funktionieren bei Binärdaten, weil er dann mittendrin ein 
Dateiende erkennt, wenn da zufällig das entsprechende Zeichen steht. Du 
könntest aber auf der Sendeseite die Daten vorher z.B. mit uuencode in 
Text wandeln, den so übertragen, dann auf der anderen Seite mit uudecode 
wieder zurückwandeln.

> auf der empfägnerseite: cat /dev/ttySx > datei

Das wird aber wohl nicht so ideal funktionieren, wenn gleichzeitig die 
shell auf derselben Schnittstelle offen ist.
Persönliche Seite
Um Binärdaten über serielle Verbindungen zu senden, die auch 
gleichzeitig als Terminalverbindung für die Shell dienen, verwendet man 
seit Äonen Protokolle wie die von G4st angesprochenen X-/Y- oder 
Z-Modem.

Auf Linux-Systemen kann man dafür sz verwenden.

Auf der Gegenseite bedarf es nur eines üblichen Terminalprogrammes wie 
z.B. das bei älteren Windows-Versionen mitgelieferte "Hyperterminal" 
oder TeraTerm.
Gast
rz und sz ist ein Weg muss aber durch das Terminalprogramm unterstützt 
werden
und linux kommt dafür wahrscheinlich minicom in Frage.

Copy und paste von Binärfiles geht mit uuencode bzw. uudecode.
Gast
Rolf Magnus schrieb:
>> auf der empfägnerseite: cat /dev/ttySx > datei
>
> Das wird aber wohl nicht so ideal funktionieren, wenn gleichzeitig die
> shell auf derselben Schnittstelle offen ist.

Einfach "cat > file" cat liest dann von stdin, was ja die Console ist.
sz braucht unter Unix kein Terminalprogramm als Gegenseite, sondern nur 
eine Shell, denn es sendet als Präambel "rz<newline>", was das 
Empfangsprogramm auf der anderen Seite startet.

In Gegenrichtung muss rz von Hand aufgerufen werden.  Eine Shell auf der 
gleichen Schnittstelle stört (wie beim cat oben auch) natürlich nicht, 
denn sie tut ja nichts und wartet nur auf die Beendigung des Kommandos, 
sei es jetzt rz oder cat.

Und dann gibt es noch den guten alten Kermit, der sollte auch auf jedem 
Linux verfügbar sein und ist für solche Sachen auch gut geeignet.
Gast
'Dateiende' ist kein Zeichen, sondern eine Bedingung. Es könnte 
allerhöchstens sein, dass sich irgendein Terminal-Programm von einem 
NULL-Zeichen so verwirren lässt, wie das Windows-Notepad.

Eines der Modemprotokolle empfiehlt sich aber trotzdem, da die mit 
Prüfsummen arbeiten und automatisch den Transfer beenden. Eine serielle 
Schnittstelle ist halt keine Pipe, da gibts i.d.R. kein Dateiende.
Unter DOS (als würdiger Nachfolger von CPM) war ^Z (ASCII 26)
als Dateiendezeichen verbreitet, nur zur Info.
Da hat man auch den Unterschied nicht gekannt zwischen Zeichen
und Bedingung (meines Wissens, weil im Dateisystem von CPM
keine Länge einer Datei vermerkt war und deshalb ein Zeichen
dafür missbraucht werden musste).
Gast
Zumindest bei Textdateien, jo. Meine IBM-DOS-Referenz sagt, dass das bei 
Binärdaten nicht so ist. Kam daher, dass CP/M die Dateigröße nur in 
Blöcken (etwa zu 128 Bytes) hinterlegt hat, und man bei Textdateien 
trotzdem auch halbe Blöcke haben wollte.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.