ส่งไฟล์โดยโปรโตคอล xmodem หรือ kermit ด้วยหน้าจอ GNU


23

ผมทำงานกับอุปกรณ์ RS-232 ผ่าน screenGNU

$ screen /dev/ttyUSB0 115200

ในบางจุดฉันจำเป็นต้องส่งไฟล์โลคัลไปยังอุปกรณ์โดยใช้โปรโตคอลxmodemหรือ kermitใน Windows ฉันใช้ TeraTerm ซึ่งมีรายการเมนูที่เกี่ยวข้อง ฉันจะบรรลุสิ่งนี้ในหน้าจอ GNU ได้อย่างไร

คำตอบ:


25

วิธีที่ดีที่สุดที่จะผ่านไฟล์ผ่าน XMODEM sxคือการใช้ ใน debian แอปพลิเคชันนี้เป็นส่วนหนึ่งของแพ็คเกจ 'lrzsz'

ในเดเบียน:

apt-get lrzsz หน้าจอติดตั้ง

หน้าจอ / dev / ttyUSB0 115200

จากนั้นกดCtrl-Aตามด้วย:และพิมพ์:

ผู้บริหาร !! sx yourbinary.bin

สิ่งนี้จะส่งไฟล์ไปยัง ttyUSB0 ผ่านโปรโตคอล xmodem


การดำเนินการนี้สามารถถูกดำเนินการแบบไม่โต้ตอบทั้งแบบscreen cuแพ็คเกจหรือแบบอื่น ๆ ได้หรือไม่?
Vorac

3
@Vorac คุณสามารถทำได้sx binary.bin | socat FILE:/dev/ttyUSB0,b115200,raw -
GnP

2
วิธีการให้รับคำสั่งGive your local XMODEM receive command now
AQU

แพ็คเกจนั้นได้รับการดูแลที่ไหน? ฉันหามันไม่เจอ
not2qubit

8

หากคุณต้องการที่จะใช้ Zmodem คุณต้องตั้งค่าzmodemตัวเลือกpassถ้าเซสชั่นหน้าจอของคุณทำงานอยู่แล้วให้กดและเพียงแค่ใส่CTRL+A : zmodem passในการส่งข้อมูลเพียงใช้szคำสั่งจากlrzszแพ็คเกจ

catchหากคุณต้องการที่จะได้รับข้อมูลผ่านทางหน้าจอคุณจะต้องตั้งค่าให้


zmodem catchเป็นตัวเลือกที่ฉันค้นหามานาน! ดี riddance minicom
ijustlovemath

4

ฉันต้องการที่จะทำการถ่ายโอนแบบอนุกรมของไฟล์. bin ไปยัง xbee ด้วย xmodem ดังนั้นฉันจึงใช้รหัสทุบตีเลอะเทอะนี้:

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

บรรทัดที่สามส่งคำสั่งไปยังอีกด้านหนึ่ง (xbee) เพื่อเริ่มฟังการถ่ายโอนไฟล์ ดังนั้นคุณอาจจะดีกับเพียง:

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

2

หากคุณพยายามทำสิ่งนี้ผ่านหน้าจอบน OSX คุณสามารถทำตามขั้นตอนที่กำหนดโดย user32704 ด้วยการปรับเปลี่ยนเล็กน้อย คุณจะต้องสร้าง lrzsz ก่อนจากแหล่งซึ่งสามารถพบได้ที่นี่:

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

จากนั้นแทนที่จะexec !! sx yourbinary.binใช้:

exec !! lsz -X yourbinary.bin

3
ชงติดตั้ง lrzsz
Daniele Brugnara

sudo port install lrzsz
miken32
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.