Tenho um Linux embarcado em uma placa personalizada e gostaria de enviar e receber arquivos pela porta serial.
A única maneira de se comunicar com este dispositivo é via serial e o dispositivo oferece um console nesta porta serial.
Esta placa não tem kermit
nem busybox rx
nem lrzsz
.
- Envio de arquivo para controle remoto
Consegui enviar o arquivo para o conselho seguindo este tópico .
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
- Obtendo arquivo do controle remoto
Agora eu gostaria de recuperar um arquivo do sistema remoto.
O Minicom tem uma ferramenta para recebimento de arquivos mas como só tenho o console da porta serial usando o minicom para emitir comandos no lado remoto, não encontro como fazer.
Eu tentei usar o kermit no lado do host, mas parece que também preciso ter o kermit no lado remoto.
EDITAR:
Eu também tentei reverter o método de envio, mas sem sucesso, pois não recebo nada da porta serial no lado do host.
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
Não é possível usar a ferramenta de recebimento do minicom porque ela suporta apenas xmodem
, ymodem
, zmodem
e kermit
transferências e não ascii.
Existe uma maneira de recuperar arquivos do controle remoto sem precisar digitar comandos em seu console?
Finalmente descobri que eu estava emitindo o comando errado do lado do receptor.
O comando de recebimento deve ser:
cat < /dev/ttyUSB0 > file_b64
Resumo
Para receber do controle remoto:
Resumindo os posts acima, encontrei algo assim:
Enviando.
Comece a receber no alvo:
Saia do minicom com Ctrl-A + Q e execute na máquina host:
Retorne ao minicom e pressione Ctrl-D para finalizar o processo de recebimento.
Recebendo.
Iniciar envio atrasado no destino:
Saia do minicom com Ctrl-A + Q . Então comece a receber no host: