GNU画面でxmodemまたはkermitプロトコルでファイルを送信します


23

GNUを介してRS-232デバイスを使用していますscreen

$ screen /dev/ttyUSB0 115200

ある時点で、xmodemまたはkermitプロトコルを使用してローカルファイルをデバイスに送信する必要があります。Windowsでは、対応するメニュー項目があるTeraTermを使用します。GNU画面でこれを達成するにはどうすればよいですか?

回答:


25

xmodemを介してファイルを渡す最良の方法は、を使用することsxです。Debianでは、このアプリケーションは「lrzsz」パッケージの一部です。

Debianの場合:

apt-getインストール画面lrzsz

画面/ dev / ttyUSB0 115200

次にを押して、Ctrl-A続けて:入力します。

エグゼクティブ!! sx yourbinary.bin

これにより、xmodemプロトコルを介してファイルがttyUSB0に送信されます。


この操作はscreen cu、他のパッケージと一緒に、または他のパッケージと非対話的に実行できますか?
ヴォラック

3
いつでもできる@Voracsx binary.bin | socat FILE:/dev/ttyUSB0,b115200,raw -
GnP

2
受信コマンドを与える方法Give your local XMODEM receive command now
-AQU

そのパッケージはどこで管理されていますか?見つけられません。
not2qubit

8

zmodemを使用する場合は、zmodemオプションをに設定する必要がありpassます。スクリーンセッションが既に実行されている場合は、を押しCTRL+A :てを入力しzmodem passます。データを送信するにszは、lrzszパッケージのコマンドを使用します。

画面を介してデータを受信する場合は、値をに設定する必要がありますcatch


zmodem catchは私が年齢を探してきたオプションです!いい馬鹿げた、ミニコム。
-ijustlovemath

4

xbinへの.binファイルのシリアル転送をxmodemで自動化する必要があるため、このずさんなbashコードを使用しました。

echo "Starting connection..."
screen -d -m -S uart_con /dev/ttyO1 115200
sleep 1
screen -S uart_con -X stuff 'F'$(echo -ne '\015')
sleep 1
screen -S uart_con -X exec \!\! sz -X /home/file_directory/example.abs.bin
echo "now transfering... "
sleep 20
pkill screen

3行目は、ファイル転送のリッスンを開始するコマンドを相手側(xbee)に送信します。だからあなたはおそらくちょうど良いです:

screen -d -m -S uart_con /dev/ttyUSB0 115200
screen -S uart_con -X exec \!\! sz -X /path_to_file/example.file

2

OSXの画面からこれを行おうとしている場合は、user32704によっていくつかの小さな変更を加えた手順に従ってください。まずソースからlrzszをビルドする必要があります。これは次の場所にあります。

https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz

次に、代わりにexec !! sx yourbinary.bin使用する必要があります:

exec !! lsz -X yourbinary.bin

3
brew install lrzsz
ダニエル・ブルグナーラ

sudo port install lrzsz
miken32
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.