Se você tem um login serial de uma estação de trabalho do Ubuntu (local) para outra máquina do Ubuntu (remoto), você pode enviar um arquivo bruto através do gtkterm com o seguinte:
Primeiro, verifique o md5sum do arquivo para que possamos ter certeza de que o transferimos com sucesso. Se o arquivo que você deseja enviar for binário (contém texto não ASCII), então eu recomendo que você codifique primeiro os dados na base64. Por exemplo
[local]:
user@local:~$ md5sum my_file.bin
9426054eb507e98605d7a6b94189168b my_file.bin
user@local:~$ base64 my_file.bin > my_file.bin.base64
user@local:~$ gtkterm --port /dev/ttyUSB1 --speed 115200 &
[remoto] :
user@remote:~$ cat > my_file.bin.base64
Agora use o menu gtkterm para "enviar arquivo bruto" e selecione seu arquivo. Você verá cada byte do arquivo ecoado na janela do gtkterm. Quando o arquivo terminar, pressione Ctrl+D
na janela gtkterm
para enviar um EOF
para cat
. Você verá um novo prompt de terminal aparecer. Então base64 decodifique o arquivo. Finalmente, é uma boa ideia verificar a integridade dos dados.
[remote]:
user@remote:~$ base64 -d my_file.bin.base64 > my_file.bin
user@remote:~$ md5sum my_file.bin
9426054eb507e98605d7a6b94189168b my_file.bin
Notas
Observe que a transferência de arquivos prosseguirá na velocidade da conexão serial. Você não pode enviar arquivos muito grandes dessa maneira. Além disso (e especialmente se a conexão serial não suporta controle de fluxo), há sempre a possibilidade de alguns bytes ignorados.
* BÔNUS:
Depois de iniciar o cat > my_file.bin.base64
na máquina remota por meio do gtkterm, você poderá ignorar o gtkterm para fazer a transferência de arquivos real. Por exemplo, você pode usar cat ole simples:
[local]:
user@local:~$ cat my_file.bin > /dev/ttyUSB1
Ou se você quiser uma barra de progresso interessante, dê pv
a try:
[local]:
user@local:~$ pv my_file.bin | cat > /dev/ttyUSB1
Essa técnica funcionará com outros clientes de terminal serial, incluindo clientes baseados em terminal (por exemplo, creen
, minicom
, etc).