Envia o arquivo pelo protocolo xmodem ou kermit com a tela GNU

18

Eu trabalho com um dispositivo RS-232 via GNU screen .

$ screen /dev/ttyUSB0 115200

Em algum momento, preciso enviar um arquivo local para o dispositivo usando o protocolo xmodem ou kermit . No Windows eu uso o TeraTerm, que tem um item de menu correspondente. Como posso conseguir isso na tela GNU?

    
por George M 25.11.2012 / 10:45

4 respostas

19

a melhor maneira de passar um arquivo pelo xmodem é usar sx . No debian, este aplicativo faz parte do pacote 'lrzsz'.

No debian:

apt-get install screen lrzsz

screen /dev/ttyUSB0 115200

Em seguida, pressione Ctrl-A seguido de : e digite:

exec !! sx yourbinary.bin

Isto irá enviar o arquivo para ttyUSB0 através do protocolo xmodem

    
por 19.02.2013 / 18:59
4

Se você quiser usar o zmodem, você deve definir o zmodem opção para pass , se sua sessão de tela já estiver em execução, pressione CTRL + A: e apenas digite zmodem pass . Para enviar os dados, basta usar o comando sz do pacote lrzsz .

Se você deseja receber dados por meio da tela, é necessário definir o valor como catch .

    
por 25.11.2012 / 11:52
2

Eu estava precisando automatizar a transferência serial de um arquivo .bin para um xbee com xmodem, então usei este código basico desleixado:

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

A terceira linha envia um comando para o outro lado (xbee) para iniciar a escuta de uma transferência de arquivos. Então você provavelmente é bom com apenas:

screen -d -m -S uart_con /dev/ttyUSB0 115200
screen -S uart_con -X exec \!\! sz -X /path_to_file/example.file
    
por 21.06.2018 / 17:39
1

Se você está tentando fazer isso através da tela no OSX, você pode seguir o procedimento descrito pelo user32704 com algumas pequenas modificações. Você precisará primeiro criar o lrzsz a partir da fonte, que pode ser encontrada aqui:

link

Então, em vez de exec !! sx yourbinary.bin , você deve usar:

exec !! lsz -X yourbinary.bin
    
por 01.06.2016 / 15:18