AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 460342
Accepted
Arkaik
Arkaik
Asked: 2018-08-04 06:25:04 +0800 CST2018-08-04 06:25:04 +0800 CST 2018-08-04 06:25:04 +0800 CST

Recuperar arquivo por serial sem kermit e lrzsz

  • 772

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 kermitnem busybox rxnem 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, zmodeme kermittransferências e não ascii.


Existe uma maneira de recuperar arquivos do controle remoto sem precisar digitar comandos em seu console?

serial-port file-transfer
  • 2 2 respostas
  • 11219 Views

2 respostas

  • Voted
  1. Best Answer
    Arkaik
    2018-08-04T07:14:19+08:002018-08-04T07:14:19+08:00

    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:

              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   |
    
    • 6
  2. Serg Stetsuk
    2018-12-08T05:54:56+08:002018-12-08T05:54:56+08:00

    Resumindo os posts acima, encontrei algo assim:

    Enviando.

    Comece a receber no alvo:

    cat | base64 -d > filetotarget.bin
    

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

    cat filetotarget.bin | base64 > /dev/ttyUSB0
    

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

    Recebendo.

    Iniciar envio atrasado no destino:

    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
    
    • 6

relate perguntas

  • Como evitar que o DTR seja aberto para cdc_acm?

  • Executando picocom em segundo plano sem sessão aberta

  • QEMU mais de 4 portas seriais

  • Configurando uma placa serial PCIe que não parece possuir portas de E/S

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve