ทำไมลีนุกซ์ลีนุกซ์บางรุ่นถึงยังมี / dev / ttyS0, ttyS1, ฯลฯ , ถึงแม้ว่าคอมพิวเตอร์ที่ใหม่กว่าไม่มีพอร์ตอนุกรมเช่นนั้น?


34

คอมพิวเตอร์แล็ปท็อปและเดสก์ท็อปใหม่จำนวนมากไม่มีพอร์ตอนุกรม 9-pin / 25-pin ทำไมลินุกซ์จำนวนมากยังคงมี/dev/ttyS0, dev/ttyS1แฟ้มอุปกรณ์?

เนื่องจากudevสามารถสร้างแฟ้มอุปกรณ์แบบไดนามิก, ทำไม/dev/ttyS0, /dev/ttyS1ยังคงสร้างแบบคงที่? ทุกครั้งที่ฉันบูตเครื่อง/dev/ttyS0และ/dev/ttyS1อยู่ในนั้น

โดยวิธีการ: ฉันใช้ Debian 7.0

คำตอบ:


41

เหล่านี้/devโหนดปรากฏขึ้นเนื่องจากเครื่องคอมพิวเตอร์โปรแกรมควบคุมพอร์ตมาตรฐานอนุกรมเรียบเรียงเคอร์เนลที่คุณกำลังใช้และมันคือการหาUARTs นั่นทำให้/sys/devices/platform/serial8250(หรือสิ่งที่เข้ากันได้) ปรากฏขึ้นดังนั้นudevจึงสร้าง/devโหนดที่เกี่ยวข้อง

UART เหล่านี้น่าจะเป็นหนึ่งในคุณสมบัติมากมายของชิปเซ็ตเมนบอร์ดของคุณ UART แบบอนุกรมในชิปเซ็ตยังคงเป็นเรื่องปกติแม้ว่ามันจะกลายเป็นเรื่องธรรมดาน้อยลงสำหรับตัวเชื่อมต่อ DB-9 ที่จะยึดกับหมุด IC UART เหล่านี้

ในเมนบอร์ดบางตัวมีตัวเชื่อมต่อส่วนหัวสำหรับแต่ละพอร์ตอนุกรมและคุณต้องซื้อสายเคเบิลอะแดปเตอร์หากคุณต้องการกำหนดเส้นทางตัวเชื่อมต่อนั้นไปทางด้านหลังของพีซี:

ส่วนหัว 10 พินกับสายเคเบิลอะแดปเตอร์ DB-9M

มาเธอร์บอร์ดอื่นที่ใช้ชิปเซ็ตตัวเดียวกันอาจไม่ได้เปิดเผยตัวเชื่อมต่อส่วนหัวแม้ว่าคุณสมบัตินั้นจะมีอยู่ในซิลิกอนเพื่อประหยัดพื้นที่ PCB เพียงเล็กน้อยและเพียงไม่กี่เซ็นต์สำหรับตัวเชื่อมต่อส่วนหัว

UART แบบอนุกรมสองสามตัวเพิ่มค่าใช้จ่ายเล็กน้อยให้กับชิปเซ็ตพีซีที่ผลิตในจำนวนมากในขณะที่มันเพิ่มราคาไม่กี่ดอลลาร์ให้กับราคาขายปลีกขั้นสุดท้ายของเมนบอร์ดเพื่อเรียกใช้ตัวเชื่อมต่อ DB-9 ออกไปที่ขอบบอร์ด นอกจากนี้ยังมีค่าใช้จ่ายในพื้นที่ PCB; พื้นที่ที่ขอบบอร์ดมีค่าโดยเฉพาะอย่างยิ่ง

ไม่มีวิธีมาตรฐานในการสอบสวนการมีอยู่ของอุปกรณ์ที่เชื่อมต่อกับพอร์ตอนุกรม RS-232

Contrast USB ซึ่งการมีอยู่ของพอร์ตบนแผงวงจรหลักไม่ได้ทำให้เกิดการสร้าง/devโหนด แต่การเสียบอุปกรณ์นั้นจะทำได้เนื่องจากมีการเจรจาต่อรองที่ซับซ้อนระหว่างอุปกรณ์กับโฮสต์ระบบปฏิบัติการ ผลอุปกรณ์ประกาศตัวเองกับระบบปฏิบัติการดังนั้นudevสามารถตอบสนองโดยการสร้าง/devโหนดที่เหมาะสมสำหรับอุปกรณ์


11
ฉันอยากจะแนะนำการกล่าวถึงเมนบอร์ดแล็ปท็อปจำนวนมาก - มีคอนโทรลเลอร์แบบอนุกรมมันไม่ได้มุ่งไปที่ใดดังนั้นจึงไม่สามารถใช้งานได้โดยไม่ต้องถอดแล็ปท็อปและบัดกรีลงบนจุดทดสอบผู้ผลิตหลายรายใช้การตรวจสอบพื้นฐาน เพื่อให้แน่ใจว่าระดับฟังก์ชั่นพื้นฐานในเมนบอร์ดก่อนการจัดส่ง อย่างไรก็ตามเท่าที่เกี่ยวข้องกับลินุกซ์นี่หมายความว่ามีพอร์ตอนุกรมและมันทันทีที่คาดว่าจะเป็นไปได้สำหรับบอร์ดใด ๆ ที่มีตัวควบคุมอนุกรม
Vality

@Vality คุณรู้ข้อมูลที่เป็นประโยชน์เกี่ยวกับเรื่องนี้หรือไม่ - ฉันเข้าใช้งานแล็ปท็อปที่จะถือว่าล้าสมัยในวันพรุ่งนี้และดังนั้นจึงเหมาะสำหรับ (a) Linux และ (b) การแก้ไข
Chris H

1
@ChrisH มันขึ้นอยู่กับแล็ปท็อปบ้างคุณจะต้องหาแผ่นข้อมูลหรืออย่างน้อยก็ควรมีคู่มือการแฮ็คสำหรับเมนบอร์ดของแล็ปท็อปขึ้นอยู่กับรุ่นบางรุ่นจะมีรูปแบบที่ถูกต้องในการบัดกรีบนหัวต่ออนุกรม บอร์ดที่ถูกกว่ามีจุดทดสอบกระจายอยู่ทั่วไปเกี่ยวกับบอร์ด หากคุณโชคดีและก่อนหน้านี้เป็นกรณีที่คุณสามารถบัดกรีที่หัวต่อได้ให้เชื่อมต่อสายเคเบิลนั้นอาจจะตัดช่องเล็ก ๆ ในแล็ปท็อปของคุณเพื่อให้ซ็อกเก็ตเสียบเข้าที่จากนั้นคุณจะมีพอร์ต จำไว้ว่ามันจะเป็น 5 หรือ 3.3 โวลต์ดังนั้นอย่าใช้มันเป็น RS232 แล็ปท็อปคืออะไร
Vality

@Viet netbook acer - ไม่มีรูปแบบที่แน่นอนที่นี่ - ฉันแค่สงสัยเกี่ยวกับแหล่งข้อมูลทั่วไปจริงๆมันจะเป็นช่วงเวลาก่อนที่ฉันจะได้รับรอบ - ขอบคุณ
Chris H

ปัญหานี้เป็นพื้นฐานความเข้ากันได้แบบอนุรักษ์นิยมและย้อนหลัง ซึ่งเป็นเหตุผลว่าทำไมคนอย่าง Linux คุณไม่“ ย้ายเร็ว & ทำลายสิ่งต่าง ๆ ” ในเคอร์เนล สิ่งต่าง ๆ เท่านั้นที่จำเป็นต้องเปลี่ยนเมื่อมีเหตุผลที่เป็นสากลและเป็นธรรมเหตุผลสำหรับเคอร์เนลที่จะก้าวไปข้างหน้า
JakeGould

4

ลองนึกภาพว่าการใช้งาน Linux ภายใต้การจำลองเสมือนจริงตัวจำลองจำนวนมากยังคงต้องพึ่งพาการส่งออกคอนโซลไปยังพอร์ตอนุกรม มันเป็นมาตรฐานที่สะดวก นอกจากนี้เซิร์ฟเวอร์ headless ยังคงใช้พอร์ตอนุกรมสำหรับการสื่อสาร


แต่ไม่มีเหตุผลใดที่ทำให้โหนดอุปกรณ์ถูกสร้างขึ้น มันถูกสร้างขึ้นเพราะอุปกรณ์อยู่ที่นั่นเท่าที่เคอร์เนลเกี่ยวข้อง หากคุณปิดใช้งานอนุกรม UART บน CMOS มันจะไม่เป็นเช่นนั้น
GnP

1
QEMU เป็นตัวอย่างที่ใช้ถ้าคุณต้องการเรียกใช้ VM ภายในเทอร์มินัลของคุณ: stackoverflow.com/questions/19565116/ …
Ciro Santilli 新疆改造中心中心法轮功六四事件

0

เป็นมูลค่าการกล่าวขวัญว่าเซิร์ฟเวอร์ (ส่วนใหญ่?) ยังคงให้การเข้าถึงแบบอนุกรม (ttyS0) ฉันต้องเชื่อมต่อผ่านการเชื่อมต่อแบบอนุกรมผ่าน LAN ผ่าน iLO / iDRAC เกือบทุกวัน ตามที่ @Patrick ตั้งข้อสังเกตฉันเชื่อมต่อกับเครื่องเสมือนผ่านพอร์ตอนุกรมเช่นกันเมื่อทำการตั้งค่าเครือข่าย ฯลฯ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.