カスタムボードにLinuxが組み込まれており、シリアルポートを介してファイルを送受信したいと思います。
デバイスと通信する唯一の方法はシリアルを介することであり、デバイスはこのシリアルポートにコンソールを提供します。
ボードにはkermit
両方busybox rx
ありませんlrzsz
。
- リモートでファイルを送信
次のようにファイルをボードに送信できます。このスレッド。
Host side Remote side
cat file | base64 > file_b64
cat > file_b64
minicom's ctrlA-S => send 'file_b64'
cat file_b64 | base64 --decode > file
- リモートからファイルをインポートする
では、リモートシステムからファイルを検索したいと思います。
Minicomにはファイルをリッスンするツールがありますが、minicomのシリアルポートコンソールのみを使用してリモート側でコマンドを実行するため、これを行う方法はありません。
ホスト側でkermitを試してみましたが、リモート側でもkermitを使用する必要があるようです。
編集する:
また、転送方法を逆に試しましたが、ホスト側のシリアルポートで何も受信できなかったため、成功しませんでした。
Host side Remote side
cat file | base64 > file_b64
(sleep 10; cat file_b64 > /dev/ttyS0) &
minicom's ctrlA-X => exit minicom
cat /dev/ttyUSB0 > file_b64
ミニコムの受信ツールは、、、、転送のみサポートし、xmodem
ASCIIはサポートしていないため使用できません。ymodem
zmodem
kermit
コンソールにコマンドを入力せずにリモートからファイルを検索する方法はありますか?
答え1
ついに私が受信側で間違ったコマンドを出していることを見つけました。
受信コマンドは次のようにする必要があります。cat < /dev/ttyUSB0 > file_b64
一般化する
リモートから受信:
Host side | Remote side
|
| #Encode to base64
| cat file | base64 > file_b64
|
| #Send after timeout
| (sleep 10; cat file_b64 > /dev/ttyS0) &
|
#############################################################
### Exit minicom but keep configuration (ctrlA-Z, then Q) ###
#############################################################
|
#Receive file |
cat < /dev/ttyUSB0 > file_b64 |
|
#Decode file |
cat file_b64 | base64 -di > file |
答え2
上記の投稿をまとめると、次のようになります。
送る。
宛先受信開始:
cat | base64 -d > filetotarget.bin
ミニコム終了Ctrl-A+Qその後、ホストシステムで実行します。
cat filetotarget.bin | base64 > /dev/ttyUSB0
ミニコムに戻って[次へ]を押します。Ctrl-D受信プロセスを完了します。
買収する。
ターゲットへの遅延転送の開始:
sleep 10 ; cat filefromtarget.bin | base64
ミニコム終了Ctrl-A+Q。その後、ホストからの受信を開始します。
cat < /dev/ttyUSB0 | base64 -di > filefromtarget.bin