लिनक्स: नेटवर्क पर शेयर कीबोर्ड


12

जैसा कि शीर्षक से पता चलता है, मैं स्थानीय रूप से एक दूरस्थ कीबोर्ड का उपयोग करना चाहता हूं। रिमोट कीबोर्ड एक TTY में प्रयोग करने योग्य होना चाहिए और, यदि संभव हो तो, एक्स-सर्वर में भी। क्या कोई ड्राइवर (कर्नेल मॉड्यूल) नेटवर्क पारदर्शिता के साथ "नकली" कीबोर्ड का अनुकरण कर रहा है?

जवाबों:


16

मुझे इसका पता चला।

पहले सुनिश्चित करें कि आपने दोनों मशीनों पर एवदेव कर्नेल मॉड्यूल लोड किया है ।

आपके द्वारा चलाए जा रहे रिमोट मशीन पर:

$ cat /dev/input/by-path/platform-i8042-serio-0-event-kbd | nc <IP> 4444

और ग्राहक पर:

$ nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd

(नोट: यदि आप netcat-openbsd से netcat का उपयोग कर रहे हैं, उदाहरण के लिए Ubuntu या Fedora में, '-p' का उपयोग न करें)

यह पूरी तरह से काम करता है चाहे मैं TTY में हो या X.org में। और यह बिना किसी देरी के चलता है!

दुर्भाग्य से सभी चाबियाँ रिमोट मशीन पर भी टाइप की जाती हैं। क्या nc चल रहा है, उन्हें अस्थायी रूप से अक्षम करने का एक तरीका है? मैंने रिमोट मशीन पर "बिल्ली -" चलाने के बारे में कुछ सोचा था, लेकिन एक Ctrl-C इसे निश्चित रूप से समाप्त कर देगा।


2
मैं बेहतर किस्मत के साथ nc -l 4444, बिना था -p। के अनुसार man nc, के -pसाथ संयोजन में स्पष्ट रूप से निषिद्ध है -l। अन्यथा यह एक शानदार समाधान है और बस मुझे क्या चाहिए :)
मैग्नस हॉफ

1
मैं आपको दृढ़ता से इसे सुरक्षित कनेक्शन या स्थानीय रूप से उपयोग करने के लिए प्रोत्साहित करता हूं (हालांकि यह वास्तव में सुरक्षित नहीं है)। वहाँ snetcat है, ('सुरक्षित netcat') यदि आप प्रमाण पत्र आयात करते हैं तो काम कर सकते हैं (गो, google it :-)। इसके अलावा, कृपया अपने समाधान को स्वीकार करें, यह प्रश्न अभी भी 'खुला' है।
प्रूज़िनैट

यह अधिक होगा अगर यह कॉपी और पेस्ट का समर्थन करता है !!
चेनिंग जांग

अद्भुत समाधान! मैं प्रभावित हूं कि आपने इसका पता लगाने में कामयाबी हासिल की। क्या आपको एक मशीन पर आउटपुट को अक्षम करने के लिए एक समाधान मिला, जबकि दूसरे पर चल रहा है?
सेशनियन

7

सिनर्जी कई मशीनों के बीच नेटवर्क पर एक कीबोर्ड साझा करेगा। अगर यह सीधे-सीधे वह नहीं करता है जो आप चाहते हैं, तो मुझे यकीन है कि वहाँ कोड है जो आपको स्थापित करना आसान बना देगा।


सिनर्जी + तालमेल का एक 'कांटा' है जो अभी भी बगफिक्स के लिए बनाए रखा गया है। इसके अतिरिक्त त्वरित-तालमेल कुछ डेबियन पैकेज रिपॉजिटरी में उपलब्ध है और तालमेल के लिए GUI आवरण प्रदान करता है।
जोशियाह

3
दरअसल सिनर्जी एक्स-सर्वर पर निर्भर करती है। मुझे एक समाधान की आवश्यकता है जो हालांकि TTY में काम करता है। अगर मुझे पता था कि TTY में मुख्य प्रेस का अनुकरण कैसे किया जाता है, तो मैं खुद एक छोटा अनुप्रयोग लिखने का प्रयास करूँगा। दुर्भाग्य से मुझे Google पर कुछ भी मूल्यवान नहीं मिला। शायद कोई मुझे कुछ संकेत दे सकता है?
टिम

5

सिनर्जी पर एक नजर ।

सिनर्जी फ्री और ओपन सोर्स सॉफ्टवेयर है जो आपको अपने माउस और कीबोर्ड को कई कंप्यूटरों के बीच आसानी से साझा करने देता है, जहां प्रत्येक कंप्यूटर का अपना डिस्प्ले होता है। कोई विशेष हार्डवेयर की आवश्यकता नहीं है, आपको केवल एक स्थानीय क्षेत्र नेटवर्क की आवश्यकता है। सिनर्जी विंडोज, मैक ओएस एक्स और लिनक्स पर समर्थित है। माउस और कीबोर्ड को पुनर्निर्देशित करना उतना ही सरल है जितना कि माउस को आपकी स्क्रीन के किनारे से दूर ले जाना।

सिनर्जी


0

Nc (netcat) का उपयोग करने का उपरोक्त सुझाव मेरे लिए कारगर नहीं है।

मैं इस कमांड का उपयोग करके इनपुट स्ट्रीम खोल सकता हूं:

nc -l -p 4444 > /dev/input/by-path/platform-i8042-serio-0-event-kbd

मुझे अनुमति से वंचित कर दिया जाता है, भले ही मैं इसे सूडो के रूप में करता हूं। टारगेट मशीन के पास वास्तव में एक पुराना लिनक्स स्थापित है, इसलिए हो सकता है कि / dev / इनपुट डिवाइस फ़ाइलों को पढ़ने के लिए केवल तभी वापस लाया जाए।

मैं x2x का उपयोग करके इस समस्या को हल करने में सक्षम था, हालांकि, और परिणाम बहुत उपयोगकर्ता के अनुकूल है।

आपको लक्ष्य मशीन पर "xhost +" करने की आवश्यकता है, और दूरस्थ कनेक्शन को सक्षम करने के लिए gdmsetup का भी उपयोग करें (यह X के लिए -nolisten ध्वज को हटाता है जब अगली बार gdm ने X सत्र शुरू किया है)।

उसके बाद, आपका xserver रिमोट कनेक्शन के लिए विस्तृत है, और x2x इसे स्रोत (कीबोर्ड) मशीन से कनेक्ट कर सकता है

x2x -to 192.168.1.3:0

X2x के बारे में अच्छी बात यह है कि यह आपको स्रोत मशीन पर थोड़ा नियंत्रण विंडो देता है, और कीबोर्ड की घटनाओं को केवल लक्ष्य पर भेजा जाता है, जब वह विंडो केंद्रित होती है। यह करने के लिए एक बहुत ही आसान तरीका है (मैं अभी स्रोत मशीन से इस जवाब को टाइप कर रहा हूं, और कोई आवारा कुंजीपट लक्ष्य मशीन तक नहीं पहुंच रहा है, क्योंकि मेरे पास नियंत्रण विंडो डी-केंद्रित है)। इसके अलावा, नियंत्रण विंडो के केंद्र पर क्लिक करने से माउस घटनाओं को भी अग्रेषित करना शुरू हो जाता है, और 2-बटन क्लिक करने से माउस घटनाओं का भेजना समाप्त हो जाता है। इसके अलावा, जब आप नियंत्रण विंडो में एक क्लिक के साथ माउस को अग्रेषित करने में सक्षम करते हैं, तो सभी कीबोर्ड घटनाओं को लक्ष्य पर भेजा जाता है, और स्रोत को कोई नहीं। इस प्रकार, ALT-TAB को स्रोत मशीन पर नियंत्रण विंडो को परिभाषित किए बिना लक्ष्य पर भेजा जाता है।

मेरे पास स्रोत मशीन पर वर्चुअल डेस्कटॉप सक्षम है, इसलिए मैं सिर्फ x2x कंट्रोल विंडो को दूर के डेस्कटॉप पर चिपकाता हूं और केवल तब जाता हूं जब मुझे लक्ष्य मशीन को नियंत्रित करने की आवश्यकता होती है।

समाधान का यह संस्करण एक्स स्तर पर है, जहां उपर्युक्त उत्तर लिनक्स डिवाइस स्तर पर है। यदि आप X को लक्ष्य और स्रोत दोनों पर नहीं चला रहे हैं, तो बेशक, यह बिल्कुल भी काम नहीं करेगा।

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