2012-06-25 17 views
9

मुझे एक दिलचस्प समस्या है। मैं एक एम्बेडेड बॉक्स पर काम कर रहा हूं जिसमें लिनक्स के कई उदाहरण एआरएम प्रोसेसर पर चल रहे हैं। वे आंतरिक 1 जीबीपीएस नेटवर्क से जुड़े हुए हैं। मेरे पास प्रोसेसर ए से जुड़ा एक सीरियल पोर्ट डिवाइस नोड है (आइए लिनक्स-ए चल रहा है)। मेरे पास प्रोसेसर बी पर चलने वाला एक प्रोग्राम है (लिनक्स-बी पर बताएं) सीरियल पोर्ट डिवाइस तक पहुंचें जैसे कि यह स्थानीय रूप से लिनक्स-बी से जुड़ा हुआ है।
मेरा प्रोग्राम tty echo, वर्ण मोड इनपुट को नियंत्रित करने के लिए डिवाइस नोड पर टर्म i/o टाइप एपीआई कॉल का आह्वान करता है। मैं क्या सोच रहा हूं कि यदि वर्चुअल सीरियल डिवाइस बनाने का कोई तरीका है जो लिनक्स-बी पर उपलब्ध है, तो किसी भी तरह से आंतरिक नेटवर्क पर लिनक्स-ए पर असली सीरियल डिवाइस से बात कर रहा है।
लिनक्स में वर्चुअल आईओ डिवाइस कैसे बनाते हैं जो वास्तविक डिवाइस पर डेटा प्रॉक्सी करता है?

मैं कुछ के साथ कुछ सोच रहा हूं: लिनक्स-बी में/dev/ttyvirtual है। लिखित कुछ भी जो नेटवर्क सॉकेट पर लिनक्स-ए सीरियल सर्वर पर पहुंचाया जाता है। धारावाहिक सर्वर वास्तविक डिवाइस पर एपीआई कॉल exrcises देता है/dev/ttys0 कहता है। ttys0 पर प्रतीक्षा करने वाला कोई भी डेटा वापस/dev/ttyvirtual पर ले जाया जाता है।

यह तेजी से करने के लिए शामिल सभी चीजें क्या हैं?

धन्यवाद
Videoguy

अद्यतन: मैं http://fixunix.com/bsd/261068-network-socket-serial-port-question.html महान संकेत के साथ एक चर्चा पाया।
एक अन्य उपयोगी लिंक http://blog.philippklaus.de/2011/08/make-rs232-serial-devices-accessible-via-ethernet/

+0

आरेख उपयोगी होगा;) – Merlin

उत्तर

7

मैं का उपयोग कर socat

उदाहरण यहां पाया जा सकता समाप्त हो गया: socat examples

आप दोनों मशीनों पर वापस करने के लिए वापस socat। एक टीसीपी पोर्ट और आगे के डेटा स्थानीय वर्चुअल पोर्ट या पीटीआई पर सुनता है। अन्य बॉक्स पर सोसाट वास्तविक डिवाइस का उपयोग इनपुट के रूप में करता है और किसी भी डेटा को टीसीपी पोर्ट के लिए आगे बढ़ाता है।

8

openpty(3) पर एक नजर डालें है। यह आपको एक छद्म-टीटीवी (जैसे /dev/pts/0, एसएसएच कनेक्शन का उपयोग करने की तरह) बनाने देता है, जो एक सामान्य टीटीवी के रूप में प्रतिक्रिया देगा, लेकिन आपको कनेक्शन पर सीधे प्रोग्रामेटिक नियंत्रण देगा।

इस तरह आप एक सीरियल डिवाइस (उदाहरण के लिए /dev/pts/5) होस्ट कर सकते हैं कि आप नेटवर्क कनेक्शन के बीच डेटा अग्रेषित करते हैं, और फिर अन्य ऐप्स अंतर्निहित नेटवर्क पुल के बारे में जानने के बिना सीरियल ऑपरेशंस कर सकते हैं।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^