GNU स्क्रीन के साथ xmodem या kermit प्रोटोकॉल द्वारा फ़ाइल भेजें


23

मैं GNU के माध्यम से RS-232 डिवाइस के साथ काम करता हूं screen

$ screen /dev/ttyUSB0 115200

कुछ बिंदु पर मुझे डिवाइस xmodemया kermitप्रोटोकॉल का उपयोग करके एक स्थानीय फ़ाइल भेजने की आवश्यकता है । विंडोज पर मैं TeraTerm का उपयोग करता हूं जिसमें एक संबंधित मेनू आइटम है। मैं इसे GNU स्क्रीन में कैसे प्राप्त कर सकता हूं?

जवाबों:


25

xmodem के माध्यम से फ़ाइल पास करने का सबसे अच्छा तरीका उपयोग करना है sx। डेबियन में यह एप्लिकेशन 'lrzsz' पैकेज का हिस्सा है।

डेबियन में:

apt-get install स्क्रीन lrzsz

स्क्रीन / देव / ttyUSB0 115200

फिर प्रेस Ctrl-Aके बाद: और के प्रकार:

अमल करो !! sx yourbinary.bin

यह फ़ाइल को xmodem प्रोटोकॉल पर ttyUSB0 पर भेजेगा


क्या इस ऑपरेशन को गैर-अंतःक्रियात्मक रूप से screen cuया किसी अन्य पैकेज के साथ अंजाम दिया जा सकता है ?
वोरैक

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मैं उम्र के लिए खोज रहा हूँ एक विकल्प है! अच्छा रिडक्शन, मिनिकॉम।
इग्लूवेवमथ

4

मुझे एक .bb फ़ाइल के सीरियल ट्रांसफर को xmodem के साथ एक xbee में स्वचालित करने की आवश्यकता थी, इसलिए मैंने इस मैला बाश कोड का उपयोग किया:

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.