Discussion:
xmodem
(zu alt für eine Antwort)
Michael Welle
2020-04-05 07:25:27 UTC
Permalink
Hallo,

verhalten sich verschiedene xmodem-Implementierungen unterschiedlich,
weiss man da genaueres? Ich habe ein firmware update (Hardware ist noch
nicht ganz on-topic, xmodem ist hoffentlich ;)) gemacht. Mit Linux,
picocom und sx (-k -b) bootet das Geraet danach nicht mehr. Das gleiche
update mit teraterm und xmodem gemacht tut es aber. Koennten da trotz -b
Zeilenumbrueche eine Rolle spielen?

VG
hmw
Nils M Holm
2020-04-05 07:35:11 UTC
Permalink
Post by Michael Welle
verhalten sich verschiedene xmodem-Implementierungen unterschiedlich,
weiss man da genaueres? Ich habe ein firmware update (Hardware ist noch
nicht ganz on-topic, xmodem ist hoffentlich ;)) gemacht. Mit Linux,
picocom und sx (-k -b) bootet das Geraet danach nicht mehr. Das gleiche
update mit teraterm und xmodem gemacht tut es aber. Koennten da trotz -b
Zeilenumbrueche eine Rolle spielen?
Welches xmodem? Xmodem(128)? Xmodem-1K? Xmodem-CRC? :)
--
Nils M Holm < n m h @ t 3 x . o r g > www.t3x.org
Michael Welle
2020-04-05 07:47:15 UTC
Permalink
Hallo,
Post by Nils M Holm
Post by Michael Welle
verhalten sich verschiedene xmodem-Implementierungen unterschiedlich,
weiss man da genaueres? Ich habe ein firmware update (Hardware ist noch
nicht ganz on-topic, xmodem ist hoffentlich ;)) gemacht. Mit Linux,
picocom und sx (-k -b) bootet das Geraet danach nicht mehr. Das gleiche
update mit teraterm und xmodem gemacht tut es aber. Koennten da trotz -b
Zeilenumbrueche eine Rolle spielen?
Welches xmodem? Xmodem(128)? Xmodem-1K? Xmodem-CRC? :)
xmodem-1k denke ich. sx -k und in teraterm den Haken bei 1k.

VG
hmw
Nils M Holm
2020-04-05 08:22:58 UTC
Permalink
Post by Michael Welle
Post by Nils M Holm
Post by Michael Welle
verhalten sich verschiedene xmodem-Implementierungen unterschiedlich,
weiss man da genaueres? Ich habe ein firmware update (Hardware ist noch
nicht ganz on-topic, xmodem ist hoffentlich ;)) gemacht. Mit Linux,
picocom und sx (-k -b) bootet das Geraet danach nicht mehr. Das gleiche
update mit teraterm und xmodem gemacht tut es aber. Koennten da trotz -b
Zeilenumbrueche eine Rolle spielen?
Welches xmodem? Xmodem(128)? Xmodem-1K? Xmodem-CRC? :)
xmodem-1k denke ich. sx -k und in teraterm den Haken bei 1k.
Hmm. Hast Du scherzeshalber mal probiert, den upload mit ymodem
durchzufuehren? Manche Software implementiert xmodem-1k als ymodem.
Ist zwar unwahrscheinlich, dass sowohl firmware als auch teraterm
den Fehler machen, aber wer weiss...

Oder laeuft der upload ohne Fehler durch und dann bootet das Geraet
einfach nicht? Dann ist es wohl eher nicht obiges Problem.

Zeilenumbrueche sind xmodem voellig egal, das uebertraegt Bloecke
von bytes. -b kannst Du also genausogut weglassen.

Irgendwelche Fehlermeldungen? Auffaellig viele retransmissions?
Sind die Uebetragungszeiten etwa gleich? Xmodem ist wirklich nicht
gut in Fehlerkorrektur, obwohl 1K oft auch CRC benutzt -- aber
eben nicht immer.
--
Nils M Holm < n m h @ t 3 x . o r g > www.t3x.org
Michael Welle
2020-04-05 09:20:51 UTC
Permalink
Hallo,
Post by Nils M Holm
Post by Michael Welle
Post by Nils M Holm
Post by Michael Welle
verhalten sich verschiedene xmodem-Implementierungen unterschiedlich,
weiss man da genaueres? Ich habe ein firmware update (Hardware ist noch
nicht ganz on-topic, xmodem ist hoffentlich ;)) gemacht. Mit Linux,
picocom und sx (-k -b) bootet das Geraet danach nicht mehr. Das gleiche
update mit teraterm und xmodem gemacht tut es aber. Koennten da trotz -b
Zeilenumbrueche eine Rolle spielen?
Welches xmodem? Xmodem(128)? Xmodem-1K? Xmodem-CRC? :)
xmodem-1k denke ich. sx -k und in teraterm den Haken bei 1k.
Hmm. Hast Du scherzeshalber mal probiert, den upload mit ymodem
durchzufuehren? Manche Software implementiert xmodem-1k als ymodem.
Ist zwar unwahrscheinlich, dass sowohl firmware als auch teraterm
den Fehler machen, aber wer weiss...
habe ich gerade gemacht. Dann laeuft der Upload nicht an.
Post by Nils M Holm
Oder laeuft der upload ohne Fehler durch und dann bootet das Geraet
einfach nicht? Dann ist es wohl eher nicht obiges Problem.
Der upload laeuft nach Augenschein durch. Was mir gerade aufgefallen
Post by Nils M Holm
$ sx --xmodem -k -vv firmware
Sending firmware, 922 blocks: Give your local XMODEM receive command now.
Bytes Sent: 118144 BPS:6410

Transfer complete

*** exit status: 0

Bytes sent ist die Dateigroesse auf mod 128 == 0 aufgerundet. Muss mir
das Sorgen machen? Bei teraterm kann man das nicht so genau sehen, weil
sich der upload-Dialog sofort schliesst. Aber ich meine, der letzte
angezeigte Wert wuerde nicht auf 44 enden.

In der man page kann man folgendes lesen:

| XMODEM transfers add up to 127 garbage bytes per file. XMODEM-1k and
| YMODEM-1k transfers use 128 byte blocks to avoid extra padding.

Das verstehe ich aber nicht so recht. Ich dachte, -k benutzt 1k grosse
Blocks anstatt 128 Byte grossen Bloecken? Und selbst wenn nicht, warum
verhindern 128 Byte Bloecke das padding?


[...]
Post by Nils M Holm
Irgendwelche Fehlermeldungen? Auffaellig viele retransmissions?
Sind die Uebetragungszeiten etwa gleich? Xmodem ist wirklich nicht
gut in Fehlerkorrektur, obwohl 1K oft auch CRC benutzt -- aber
eben nicht immer.
Nichts, was sx mit -vv loggen wuerde. Beide Varianten schaffen so 5 bis
6 kb/s, ohne -k ist es weniger.

VG
hmw
Christian Zietz
2020-04-05 10:49:19 UTC
Permalink
Post by Michael Welle
Bytes sent ist die Dateigroesse auf mod 128 == 0 aufgerundet. Muss mir
das Sorgen machen?
Das ist bei XMODEM wimre immer so. Erst mit YMODEM kam eine Möglichkeit
dazu, die genaue Dateigröße ebenfalls zu übermitteln.
Post by Michael Welle
| XMODEM transfers add up to 127 garbage bytes per file. XMODEM-1k and
| YMODEM-1k transfers use 128 byte blocks to avoid extra padding.
Das verstehe ich aber nicht so recht. Ich dachte, -k benutzt 1k grosse
Blocks anstatt 128 Byte grossen Bloecken? Und selbst wenn nicht, warum
verhindern 128 Byte Bloecke das padding?
Das Schlüsselwort in diesem Satz ist *extra*. Will heißen, diese
XMODEM-1k-Implementierung schaltet für das Dateiende auf 128 Byte große
Blöcke zurück, um nicht *zusätzliche* unnötige Bytes zu übertragen, d.h.
über die max. 127 Bytes des klassischen XMODEMs hinaus. Ob Teraterm das
auch so macht, weiß ich nicht. Ebenso weiß ich nicht, wie jeweils die
überflüssigen Bytes befüllt werden. ("Garbage" klingt nicht nach
Nullbytes.)

Grüße
Christian
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: https://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA
Michael Welle
2020-04-05 11:09:08 UTC
Permalink
Hallo,
Post by Christian Zietz
Post by Michael Welle
Bytes sent ist die Dateigroesse auf mod 128 == 0 aufgerundet. Muss mir
das Sorgen machen?
Das ist bei XMODEM wimre immer so. Erst mit YMODEM kam eine Möglichkeit
dazu, die genaue Dateigröße ebenfalls zu übermitteln.
Post by Michael Welle
| XMODEM transfers add up to 127 garbage bytes per file. XMODEM-1k and
| YMODEM-1k transfers use 128 byte blocks to avoid extra padding.
Das verstehe ich aber nicht so recht. Ich dachte, -k benutzt 1k grosse
Blocks anstatt 128 Byte grossen Bloecken? Und selbst wenn nicht, warum
verhindern 128 Byte Bloecke das padding?
Das Schlüsselwort in diesem Satz ist *extra*. Will heißen, diese
XMODEM-1k-Implementierung schaltet für das Dateiende auf 128 Byte große
Blöcke zurück, um nicht *zusätzliche* unnötige Bytes zu übertragen, d.h.
über die max. 127 Bytes des klassischen XMODEMs hinaus.
achso, verstehe.
Post by Christian Zietz
Ob Teraterm das
auch so macht, weiß ich nicht. Ebenso weiß ich nicht, wie jeweils die
überflüssigen Bytes befüllt werden. ("Garbage" klingt nicht nach
Nullbytes.)
Die Suchmaschine hat einen Hinweis gefunden, dass es keine Nullbytes
sind und auch, dass nicht jeder das gleiche padding byte benutzt. Ich
fuerchte, ich werde mal den Quelltext von teraterm beaeugen. Das waere
schon lustig, wenn sich mein Klunkern am padding verschlucken wuerde.

VG
hmw
Christian Zietz
2020-04-05 12:55:22 UTC
Permalink
Post by Michael Welle
Die Suchmaschine hat einen Hinweis gefunden, dass es keine Nullbytes
sind und auch, dass nicht jeder das gleiche padding byte benutzt. Ich
fuerchte, ich werde mal den Quelltext von teraterm beaeugen. Das waere
schon lustig, wenn sich mein Klunkern am padding verschlucken wuerde.
Ich könnte mir eher vorstellen, dass die Empfangsseite vielleicht nur 1k
große Pakete erwartet und nicht eine Umschaltung auf 128 Bytes. Du
könntest gucken, ob Teraterm grundsätzlich bei 1k-Paketen bleibt (und
entsprechend mehr Padding mitsendet).

Grüße
Christian
--
Christian Zietz - CHZ-Soft - czietz (at) gmx.net
WWW: https://www.chzsoft.de/
PGP/GnuPG-Key-ID: 0x52CB97F66DA025CA / 0x6DA025CA
Nils M Holm
2020-04-05 13:49:07 UTC
Permalink
Ebenso wei? ich nicht, wie jeweils die
?berfl?ssigen Bytes bef?llt werden. ("Garbage" klingt nicht nach
Nullbytes.)
"Garbage" heisst genau das: die bytes werden ueberhaupt nicht
gefuellt, sondern es wird das uebertragen, was zufaellig gerade
drinsteht. D.h., jeder Fuellwert ist OK, aber sich auf einen
bestimmten Wert zu verlassen, waere ein Fehler.

Erfahrungsgemaess fuellen die meisten Programme aber mit ASCII SUB
(26, ^Z), weil das das ist, was CP/M-Programme als Fuellzeichen in
Textdokumenten erwarten.
--
Nils M Holm < n m h @ t 3 x . o r g > www.t3x.org
Nils M Holm
2020-04-05 13:57:56 UTC
Permalink
Post by Michael Welle
Post by Nils M Holm
$ sx --xmodem -k -vv firmware
Sending firmware, 922 blocks: Give your local XMODEM receive command now.
Bytes Sent: 118144 BPS:6410
Holla. Ich weiss ja nicht, wie OnT Deine Hardware ist, aber hast Du
es mal mit einer niedrigeren baud rate versucht? Ich weiss, das
erklaert das Problem nicht, waere aber vllt. einen Versuch wert,
waehrend wir weiter spekulieren.
Post by Michael Welle
Bytes sent ist die Dateigroesse auf mod 128 == 0 aufgerundet. Muss mir
das Sorgen machen?
Das kann xmodem nicht anders, wie schon an anderer Stelle im
Thread erklaert wurde.
Post by Michael Welle
Nichts, was sx mit -vv loggen wuerde. Beide Varianten schaffen so 5 bis
6 kb/s, ohne -k ist es weniger.
Retransmissions? Sollte SX anzeigen!
--
Nils M Holm < n m h @ t 3 x . o r g > www.t3x.org
Michael Welle
2020-04-05 14:37:00 UTC
Permalink
Hallo,
Post by Nils M Holm
Post by Michael Welle
Post by Nils M Holm
$ sx --xmodem -k -vv firmware
Sending firmware, 922 blocks: Give your local XMODEM receive command now.
Bytes Sent: 118144 BPS:6410
Holla. Ich weiss ja nicht, wie OnT Deine Hardware ist, aber hast Du
es mal mit einer niedrigeren baud rate versucht? Ich weiss, das
erklaert das Problem nicht, waere aber vllt. einen Versuch wert,
waehrend wir weiter spekulieren.
laesst sich aber nur am client einstellen, kann ich aber mal probieren.
Hatte ich noch nicht probiert, weil die paar angezeigten Strings korrekt
kommen.
Post by Nils M Holm
Post by Michael Welle
Bytes sent ist die Dateigroesse auf mod 128 == 0 aufgerundet. Muss mir
das Sorgen machen?
Das kann xmodem nicht anders, wie schon an anderer Stelle im
Thread erklaert wurde.
Post by Michael Welle
Nichts, was sx mit -vv loggen wuerde. Beide Varianten schaffen so 5 bis
6 kb/s, ohne -k ist es weniger.
Retransmissions? Sollte SX anzeigen!
Keine.

VG
hmw

Lesen Sie weiter auf narkive:
Loading...