क्यों "बिल्ली ttyUSB0" उत्पादन का उत्पादन नहीं करता है?


13

मैंने एक इन्फ्रारेड रिसीवर को USB पोर्ट से जोड़ा ... (dmesg की अंतिम पंक्ति डिवाइस फ़ाइल को बताती है)

$ dmesg
[10496.596063] usb 7-2: new full-speed USB device number 2 using uhci_hcd
[10496.751112] usb 7-2: New USB device found, idVendor=0df7, idProduct=0620
[10496.751117] usb 7-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[10496.751120] usb 7-2: Product: USB-Serial Controller
[10496.751124] usb 7-2: Manufacturer: Prolific Technology Inc.
[10496.787441] usbcore: registered new interface driver usbserial
[10496.787467] usbcore: registered new interface driver usbserial_generic
[10496.787483] usbserial: USB Serial support registered for generic
[10496.795104] usbcore: registered new interface driver pl2303
[10496.795129] usbserial: USB Serial support registered for pl2303
[10496.795160] pl2303 7-2:1.0: pl2303 converter detected
[10496.807238] usb 7-2: pl2303 converter now attached to ttyUSB0

फिर मैं इसे आजमाने गया ...

$ sudo cat /dev/ttyUSB0

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

ऐसा क्यों हो सकता है?


टिप्पणियाँ:

  • जब मैं USB पोर्ट से डिवाइस निकालता हूं और "cat: ttyUSB0: कोई ऐसी डिवाइस नहीं", और dmesg प्रिंट 3 पंक्तियों से ऊपर की कमांड समाप्त हो जाती है:

     [13707.264086] usb 7-2: USB disconnect, device number 2 
     [13707.264894] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
     [13707.264915] pl2303 7-2:1.0: device disconnected)
    
  • कीबोर्ड के लिए डिवाइस फ़ाइलों के साथ यह काम करता है, जैसे:

     $ sudo cat /dev/input/by-id/usb-USB_USB_Keykoard-event-kbd 
    

    कंसोल पर कई अजीब अक्षर पैदा करता है क्योंकि मैं कीबोर्ड की कोई भी कुंजी दबाता हूं

  • ऐसा ही अन्य USB पोर्ट पर भी होता है

2
stty raw -echo < /dev/ttyUSB0; cat -vte /dev/ttyUSB0इसके बजाय प्रयास करें ।
स्टीफन चेज़लस

@ स्टीफन चेज़लस: इसी तरह कुछ भी नहीं होता है
nlognfan


यदि आपको कोई आउटपुट नहीं मिल रहा है, तो मुझे इसके ड्राइवर के मुद्दे पर संदेह होगा या हार्डवेयर को सही ढंग से पहचाना / पहचाना नहीं जा रहा है। : यह भी मददगार साबित हो सकता है help.ubuntu.com/community/Lirc_USB-UIRT
SLM

कृपया ध्यान दें कि आमतौर पर यूएसबी-टू-सीरियल-ब्रिज के साथ इन्फ्रारेड ट्रांसीवर का उपयोग करना काम नहीं करेगा।
groxxda

जवाबों:


3

मुझे लगता है कि सीरियल डिवाइस के लिए आपको कुछ भी करने से पहले बॉड रेट सेट करना होगा। मुझे यकीन नहीं है कि काम करने के लिए कमांड लाइन से ऐसा कैसे करना है cat, लेकिन आप एक टर्मिनल एमुलेटर का उपयोग कर सकते हैं जो इसकी देखभाल करता है।

कोशिश करें minicomया screen(यानी screen /dev/ttyUSB0 115200- अपने आईआर रिसीवर की बॉड दर के साथ 115200 बदलें।)


1

USB कनेक्शन शुरू करने की आवश्यकता के बारे में उत्तर की उपेक्षा करें - जब आप डिवाइस में प्लग इन करते हैं तो यह पहले से ही शुरू हो चुका है।

यदि आप सिर्फ यह देखना चाहते हैं कि यह काम कर रहा है या नहीं, तो उपयोग करें dd if=/dev/ttyUSB0। यदि आप वास्तव में उन पात्रों को पढ़ना चाहते हैं, तो आपको सीरियल टर्मिनल की आवश्यकता है। उपयोग minicom(सीएलआई, मैनुअल की जरूरत है), picocom(यह अपने आप पता लगा सकते हैं), cutecom(अच्छा ग्राफिकल इंटरफ़ेस, आसान) या screen(सीएलआई, लेकिन वास्तव में आसान)। आपको बॉड्रेट जानने की आवश्यकता होगी .. 90% यह या तो 115200 या 9600 है, साथ ही 57600, 38400 या 19200 हो सकता है।

वैसे, आप किस तरह के रिसीवर का उपयोग कर रहे हैं? क्या आप हमें उत्पाद पृष्ठ या विवरण का लिंक दे सकते हैं?


1

यह मदद नहीं कर सकता है, लेकिन यहाँ एक ऐसी ही समस्या है जो मैंने अतीत में की है। जब मैं सीधे अपने माउस के लिए डिवाइस फ़ाइल को बिल्ली करता हूं (यानी, उपयोग करके cat /dev/input/by-id/usb-<mymouse>) मुझे आपके कीबोर्ड के साथ जो मिलता है, उसी के समान आउटपुट मिलता है (यानी, अस्पष्ट)। हालाँकि, कुछ माउस गतियाँ, जैसे बाएँ क्लिक, कोई मुद्रण योग्य वर्ण उत्पन्न नहीं करते हैं, इसलिए टर्मिनल कुछ नहीं दिखाता है।

बेशक, माउस अभी भी कुछ कर रहा है, हम सिर्फ catडिवाइस फ़ाइल को 'आईएनजी' द्वारा नहीं देख सकते हैं । सौभाग्य से कर्नेल में usbmon नामक एक साफ सुथरी विशेषता होती है जो usb उपकरणों के कच्चे बाइनरी आउटपुट पर ईवेर्सड्रोपिंग के लिए सहायक है। इसका उपयोग करते हुए, हम वास्तव में वही देख सकते हैं जब हम प्रदर्शन करते हैं (कहते हैं) एक बाएं-क्लिक करते हैं, जबकि एक ही चीज़ के माध्यम से /devअक्सर कुछ भी नहीं दिखाता है।

फिर, यह मदद नहीं कर सकता है, लेकिन यहाँ usbmon का उपयोग कैसे किया जाए:

  1. सुनिश्चित करें कि आपके कर्नेल में usbmon सक्षम है। के उत्पादन:
    zcat /proc/config.gz | grep USB_MON
    या तो होना चाहिए =mया =yउस में।

  2. यदि यह था =m, तो मॉड्यूल को लोड करेंsudo modprobe usbmon

  3. यह सुनिश्चित करने के लिए कि सभी usb सॉकेट सही जगह पर दिखाई दे रहे हैं, चलाएँ:
    ls /sys/kernel/debug/usb/usbmon
    आपको कुछ इस तरह देखना चाहिए:
    0s 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u

अलग-अलग संख्याएँ अलग-अलग यूएसबी पोर्ट्स को संदर्भित करती हैं, और सामने वाले 0 सभी यूएसबी पोर्ट्स के एकत्रित आउटपुट देते हैं। इसलिए, उदाहरण के लिए, रनिंग से cat /sys/kernel/debug/usb/usbmon/0uपता चलता है कि डिवाइस क्या कर रहा है, यहां तक ​​कि उन मामलों में जहां catफ़ाइल को /devकुछ भी नहीं दिखाया गया है।

यह आपकी समस्या को हल करता है या नहीं, यह भविष्य में मददगार हो सकता है, क्योंकि यह अक्सर यूएसबी डिवाइसों की तुलना में बेहतर बनाने का एक सहायक तरीका है /dev

सौभाग्य :)


1

मेरे लिए यह बॉड्रेट बहुत कम था। एक बार मैंने 150 के बजाय 300 का उपयोग करने के लिए सिस्टम (डिवाइस और पोर्ट) को पुन: कॉन्फ़िगर किया तो आउटपुट दिखाई दिया।


-1

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


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