Kirim file dengan xmodem atau protokol kermit dengan layar GNU


23

Saya bekerja dengan perangkat RS-232 melalui GNU screen.

$ screen /dev/ttyUSB0 115200

Pada titik tertentu saya perlu mengirim file lokal ke perangkat menggunakan protokol xmodematau kermit. Pada Windows saya menggunakan TeraTerm yang memiliki item menu yang sesuai. Bagaimana saya bisa mencapai ini di layar GNU?

Jawaban:


25

cara terbaik untuk melewatkan file melalui xmodem adalah menggunakan sx. Dalam debian aplikasi ini adalah bagian dari paket 'lrzsz'.

Dalam debian:

apt-get install layar lrzsz

layar / dev / ttyUSB0 115200

Kemudian tekan Ctrl-Adiikuti oleh :dan ketik:

exec !! sx yourbinary.bin

Ini akan mengirim file ke ttyUSB0 melalui protokol xmodem


Bisakah operasi ini dijalankan secara non-interaktif, baik dengan screen cuatau paket lain?
Vorac

3
@Vorac selalu bisa Anda lakukansx binary.bin | socat FILE:/dev/ttyUSB0,b115200,raw -
GnP

2
Cara memberi perintah terimaGive your local XMODEM receive command now
AQU

Di mana paket itu dikelola? Saya tidak dapat menemukannya.
not2qubit

8

Jika Anda ingin menggunakan zmodem, Anda harus mengatur zmodemopsi pass, jika sesi layar Anda sudah berjalan, tekan CTRL+A :dan cukup masukkan zmodem pass. Untuk mengirim data cukup gunakan szperintah dari lrzszpaket.

Jika Anda ingin menerima data melalui layar Anda harus mengatur nilainya catch.


zmodem catchadalah pilihan yang sudah lama saya cari! Baguslah, minicom.
ijustlovemath

4

Saya perlu mengotomatiskan transfer serial file .bin ke xbee dengan xmodem jadi saya menggunakan kode bash yang ceroboh ini:

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

Baris ketiga mengirim perintah ke sisi lain (xbee) untuk mulai mendengarkan transfer file. Jadi Anda mungkin baik hanya dengan:

screen -d -m -S uart_con /dev/ttyUSB0 115200
screen -S uart_con -X exec \!\! sz -X /path_to_file/example.file

2

Jika Anda mencoba melakukan ini melalui layar pada OSX, Anda dapat mengikuti prosedur yang ditetapkan oleh user32704 dengan beberapa modifikasi kecil. Anda harus membuat lrzsz dari sumber terlebih dahulu, yang dapat ditemukan di sini:

https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz

Maka, alih-alih exec !! sx yourbinary.binAnda harus menggunakan:

exec !! lsz -X yourbinary.bin

3
brew install lrzsz
Daniele Brugnara

sudo port install lrzsz
miken32
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.