Recuperar arquivo em serial sem kermit e lrzsz

1

Eu tenho um Linux embarcado em uma placa customizada e gostaria de enviar e receber arquivos por sua porta serial.

A única maneira de se comunicar com este dispositivo é através de serial e o dispositivo oferece um console nesta porta serial.

Este fórum não tem kermit nem busybox rx nem lrzsz .

- Enviar arquivo para remoto

Consegui enviar o arquivo para a diretoria 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 o arquivo do controle remoto

Agora eu gostaria de recuperar um arquivo do sistema remoto.

O Minicom tem uma ferramenta para receber arquivos, mas como eu só tenho o console da porta serial usando o minicom para emitir comandos no lado remoto, não consigo encontrar como fazer isso.

Eu tentei usar o kermit no lado do host, mas parece que eu também preciso ter o kermit no lado remoto.

EDITAR:

Eu também tentei inverter 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, pois ela suporta apenas xmodem , ymodem , zmodem e kermit tranfers e não ascii.

Existe uma maneira de recuperar arquivos remotos sem precisar digitar comandos em seu console?

    
por Arkaik 03.08.2018 / 16:25

2 respostas

1

Finalmente descobri que estava emitindo o comando errado no lado do receptor.

O comando de recebimento deve ser: cat < /dev/ttyUSB0 > file_b64

Resumo

Para receber do controle remoto:

          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   |
    
por 03.08.2018 / 17:14
0

Resumindo as postagens acima, encontrei algo assim:

Sendiig.

Começar a receber no alvo:

cat | base64 -d > filetotarget.bin

Saia do minicom com Ctrl-A + Q e, em seguida, execute na máquina host:

cat filetotarget.bin | base64 > /dev/ttyUSB0

Volte ao minicom e pressione Ctrl-D para finalizar o processo de recebimento.

Recebendo.

Iniciar atraso no envio:

sleep 10 ; cat filefromtarget.bin | base64

Saia do minicom com Ctrl-A + Q . Então comece a receber no host:

cat < /dev/ttyUSB0 | base64 -di > filefromtarget.bin
    
por 07.12.2018 / 14:54