コマンドラインを使用してxmodemファイルを受け取る方法は?

コマンドラインを使用してxmodemファイルを受け取る方法は?

私はそれを使用していますパテまたはピココンモバイルモジュールのEFSパーティションにいくつかのファイルをアップロード/ダウンロードする必要があるいくつかの実験を実行しながら、ATコマンドを使用してモバイルモデムと直接通信します。これを行うために使用されるプロトコルは次のとおりです。Xモデムほとんどのターミナルユーティリティはこれを含めたりサポートしたりしないようです。第三者依存関係としてのPicocom:

Picocom can send and receive files over the serial port 
using external programs that implement the respective protocols. 
In Linux typical programs for this purpose are:

• rx(1) - receive using the X-MODEM protocol        *
• rb(1) - receive using the Y-MODEM protocol
• rz(1) - receive using the Z-MODEM protocol
• sx(1) - send using the X-MODEM protocol           *
• sb(1) - send using the Y-MODEM protocol
• sz(1) - send using the Z-MODEM protocol

ただし、これらのいずれもWin / Cygwinでは機能しません。これをコンパイルするためのソースコードを見つけることができません。 (最近はどこでホストされていますか?)

Q:コマンドラインを使用してXmodemデータを受信する最も簡単な方法は何ですか?
(他の簡単な選択肢は何ですか?)

次のUnix SEの質問を見ました。

答え1

これらのrx/rb/rz/sx/sb/szツールはソフトウェアパッケージの一部lrzszです。packages.debian.orgのパッケージソースのパッケージメタデータアップストリームソースの場所を次のように識別します。

https://ohse.de/uwe/software/lrzsz.html

これらのプログラムはすべて、もともとUnixシステムへのターミナルベースのモデム接続があるときに使用するように設計されていました(たとえば、TCPプロトコルなどのネットワークではなくモデム回線を介してコンピュータのターミナルエミュレータからUnixシリアルポートログインに直接接続します)。 /完全にIPに関連付けられている)。

彼らは標準入力/出力でファイル転送プロトコルが発生すると期待しています。picocom同様のシリアルポート指向のターミナルエミュレータは必要なリダイレクトを自動的に処理しますが、コマンドラインで「raw」として使用する予定の場合はこの点に留意してください。入力と出力を適切なシリアルポートデバイスにリダイレクトします。それ以外の場合は、デバイスと通信を試みます。あなたデバイスを直列に接続する代わりに。

答え2

まず、ホストと宛先間の接続を確立する必要があります。

この例では、2 台の pl2303 (rx から tx、グランドからグランドへ) を使用して、両側に /dev/ttyUSB0 を生成する 2 台のコンピュータ (ホスト、ターゲット) を接続します。ターゲットにbusyboxを配置すると、2つの間に接続が確立されます。

ターゲットでは、initrcに入れることができるtty接続が必要です。または、コンソールがある場合は、次のようにgettyを使用して直接接続を開くことができます。
# sh -c 'getty -Lin -l /bin/sh 115200 /dev/ttyUSB0' &

ホストでは、次のようにターゲットにパテ接続する必要があります。
$ putty -serial -sercfg 115200,8,n,1 /dev/ttyUSB0

宛先からファイルの受信を開始するには、次のようにPutty接続でrxを実行できます。
# rx file.bz2

ホストからファイル転送を開始するには、次のように sx を実行できます。
$ sx file.bz2 < /dev/ttyUSB0 > /dev/ttyUSB0

ブロックが転送されるのを見ることができます。コーヒーを飲んで待ってください。これは115200ボード(約11kb / s)であることを忘れないでください。

関連情報