मुझे कैसे पता चलेगा कि कौन सा / देव / ttyS * मेरा सीरियल पोर्ट है?


33

मेरे पास एक लैपटॉप है जिसमें केवल एक सीरियल पोर्ट है।

मैं चला गया:

/dev 

निर्देशिका, और मैंने पाया:

ttyS0
ttyS1
ttyS2
ttyS3

मुझे कैसे पता चलेगा कि कौन सा "ttyS" मेरे सीरियल पोर्ट को संदर्भित करता है?


जवाबों:


32

मुझे लगता है कि यह यह आदेश है:

dmesg | grep tty

चल रहा है कि मेरे अपने लिनक्स बॉक्स पर (जिसमें केवल 1 सीरियल पोर्ट है) एक एकल ttyS0 आउटपुट लाइन का उत्पादन करता है। इसे अपने दम पर आज़माएं, आप देखेंगे कि मेरा क्या मतलब है।


क्या इसका मतलब यह है कि उस कमांड को चलाने के बाद, यदि प्रतिक्रिया है ... कंसोल [tty0] सक्षम किया गया ..., और कोई अन्य, कोई भी डिवाइस / dev / tty0 से जुड़ा है (प्रश्न की स्पष्ट गंभीरता के लिए खेद है)?
हेकटोर

1
एकमात्र समस्या यह है कि dmesg आउटपुट को क्लियर किया जा सकता है - इसलिए यदि आप इसे बहुत देर से चलाते हैं, तो आप भाग्य से बाहर हैं। / Proc / tty / ड्राइवर / सीरियल को देखते हुए अधिक मजबूत उत्तर लगता है और फिर उस पोर्ट में डेटा लिखने के रूप में गिनती में बढ़ती हुई रुकावट के लिए जाँच करें
नील मैकगिल

क्षमा करें, यदि मुझे कोई आउटपुट दिखाई नहीं देता है तो मुझे क्या करना होगा?
user3019105

यदि आप वर्तमान में सीरियल लाइन के ऊपर एक टर्मिनल में हैं, तो आप ttyअपने tty का नाम प्राप्त करने के लिए टाइप कर सकते हैं । मुझे लगता है कि ओपी का मतलब क्या है क्योंकि वे इस सवाल को नहीं उठाते हैं कि "कौन से सीरियल पोर्ट (एस) gettyचल रहे हैं?"
थॉम्प निकोल्स

14

देखें कि कौन से UARTs में पता चला है /proc/tty/driver/serialuart:unknownसाधनों के साथ एक पंक्ति : कुछ भी नहीं पता चला (और संभवतः अस्तित्व में नहीं है)।

# cat /proc/tty/driver/serial 
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0
1: uart:16550A port:000002F8 irq:3 tx:111780 rx:1321 RTS|DTR|DSR
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3

यदि कुछ जुड़ा हुआ है और लाइनों को ड्राइव कर रहा है सीटीएस, डीएसआर या सीडी (ये इनपुट लाइनें हैं) तो आप यह भी सुनिश्चित कर सकते हैं कि वास्तव में कुछ है ... आरएक्स-बाइट-काउंट के लिए भी यही सच है।


7

अगर आपको यह करने की आवश्यकता है कि प्रोग्राम को dmesg से आउटपुट पढ़ना परेशानी भरा हो सकता है, इसके बजाय फ़ोल्डर / dev / serial / by-id में सिम्पल लिंक होते हैं जो आपके डिवाइस के पहचान योग्य डेटा के नाम पर होते हैं और विशिष्ट / dev / tty * की ओर इशारा करते हैं। से जुड़े हुए हैं।

मुझे यकीन नहीं है कि यह कुछ विशेष udv नियम है जो वितरण विशिष्ट है, लेकिन यह उबंटू में अच्छी तरह से काम करता है, मुझे पता है कि क्या यह काम करता है।


5

ttyS0क्रमशः के माध्यम 3से के COM1माध्यम से मेल खाती है 4। उनके पास आमतौर पर समान हार्डवेयर संसाधन होते हैं और हमेशा पता लगाने योग्य नहीं होते हैं, इसलिए वे हमेशा मौजूद रहते हैं।


जवाब के लिए धन्यवाद। तो मान लीजिए कि मैं लिनक्स को बताना चाहता हूं कि मैं अपने सीरियल पोर्ट हार्डवेयर को मैप करने के लिए ttyS0 चाहता हूं, मुझे क्या करने की आवश्यकता है?
शिवाबुध

आप setserialअपने सीरियल पोर्ट के संसाधनों ttyS0 उपयोगों को मैप करने के लिए उपयोग करेंगे । linux.die.net/man/8/setserial यह सामान्य रूप से आवश्यक नहीं है, क्योंकि COM4 से परे कुछ भी आमतौर पर लिनक्स का पता लगाने के लिए पर्याप्त सहायक हार्डवेयर होता है और उचित रूप में एक सीरियल डिवाइस जोड़ सकता है।
इग्नासियो वाज़क्वेज़-अब्राम्स

0

यह कमांड भी है setserialजो /proc/tty/driver/serialडेटा प्राप्त करने के लिए उपयोग करता है।

# setserial -g /dev/ttyS[0123]
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.