Tại sao một số bản phân phối Linux vẫn có / dev / ttyS0, ttyS1, v.v., mặc dù các máy tính mới hơn không có cổng nối tiếp như vậy?


34

Nhiều máy tính xách tay và máy tính để bàn mới không có cổng nối tiếp 9 chân / 25 chân. Tại sao nhiều bản phân phối Linux vẫn chứa /dev/ttyS0, dev/ttyS1tệp thiết bị?

udevcó thể tạo các tệp thiết bị một cách linh hoạt, tại sao /dev/ttyS0, /dev/ttyS1vẫn được tạo tĩnh? Mỗi lần tôi khởi động, /dev/ttyS0/dev/ttyS1ở trong đó.

Nhân tiện: Tôi đang sử dụng Debian 7.0.

Câu trả lời:


41

Các /devnút này xuất hiện do trình điều khiển cổng nối tiếp PC tiêu chuẩn được biên dịch vào kernel bạn đang sử dụng và nó đang tìm UART . Điều đó khiến /sys/devices/platform/serial8250(hoặc một cái gì đó tương thích) xuất hiện, vì vậy udev tạo các /devnút tương ứng .

Những UART này rất có thể là một trong nhiều tính năng của chipset bo mạch chủ của bạn. Các UART nối tiếp trong chipset vẫn còn khá phổ biến, mặc dù nó ngày càng ít phổ biến hơn đối với đầu nối DB-9 được gắn vào các chân IC UART này.

Trên một số bo mạch chủ, có một đầu nối tiêu đề cho mỗi cổng nối tiếp và bạn phải mua cáp bộ điều hợp nếu bạn muốn định tuyến đầu nối đó đến mặt sau của PC:

Tiêu đề 10 chân cho cáp bộ chuyển đổi DB-9M

Các bo mạch chủ khác sử dụng cùng chipset có thể không làm lộ trình kết nối tiêu đề, mặc dù tính năng này có sẵn bằng silicon, hoàn toàn để tiết kiệm một chút không gian PCB và một vài xu cho trình kết nối tiêu đề.

Một vài UART nối tiếp thêm chi phí không đáng kể vào IC chipset PC sản xuất hàng loạt, trong khi nó thêm một vài đô la vào chi phí bán lẻ cuối cùng của bo mạch chủ để chạy đầu nối DB-9 ra cạnh bo mạch. Ngoài ra còn có một chi phí trong không gian PCB; không gian ở cạnh bảng đặc biệt quý giá.

Không có cách tiêu chuẩn nào để thăm dò sự tồn tại của một thiết bị được kết nối với cổng nối tiếp RS-232.

USB tương phản, trong đó sự hiện diện của một cổng trên bo mạch chủ không khiến /devnút được tạo, nhưng cắm thiết bị vào đó, bởi vì có một cuộc đàm phán khá phức tạp giữa thiết bị và HĐH máy chủ. Trong thực tế, thiết bị tự thông báo cho HĐH, do đó udevcó thể phản ứng bằng cách tạo một /devnút thích hợp cho thiết bị.


11
Tôi cũng khuyên bạn nên đề cập, nhiều bo mạch chủ máy tính xách tay - có bộ điều khiển nối tiếp, nó không được đặt ở bất cứ đâu nên không thể sử dụng mà không tháo rời máy tính xách tay và hàn vào các điểm kiểm tra, nhiều nhà sản xuất sử dụng điều này để kiểm tra cơ bản trên dây chuyền sản xuất để đảm bảo mức độ cơ bản của chức năng trong bo mạch chủ trước khi vận chuyển. Tuy nhiên, theo như Linux có liên quan, điều này có nghĩa là có một cổng nối tiếp và nó khởi tạo nó như mong đợi cho bất kỳ bảng nào có bộ điều khiển nối tiếp.
Vality

@Vality, bạn có biết bất kỳ thông tin hữu ích nào về việc này không - Tôi truy cập vào một máy tính xách tay sẽ bị coi là lỗi thời vào ngày mai và do đó đã chín muồi cho (a) Linux và (b) mày mò.
Chris H

1
@ChrisH Vâng, nó phụ thuộc phần nào vào máy tính xách tay, bạn sẽ cần tìm một bảng dữ liệu hoặc ít nhất là hướng dẫn hack cho bo mạch chủ của máy tính xách tay, tùy thuộc vào kiểu máy, một số sẽ có cách bố trí chính xác để hàn trên tiêu đề nối tiếp một cách dễ dàng mặc dù một số bảng rẻ hơn chỉ có một số điểm kiểm tra rải rác về bảng. Nếu bạn may mắn và trước đó là trường hợp bạn chỉ có thể hàn trên tiêu đề, kết nối cáp với nó, có thể cắt một lỗ nhỏ trên máy tính xách tay của bạn để ổ cắm phù hợp thì bạn sẽ có một cổng. Hãy nhớ rằng mặc dù nó sẽ là 5 hoặc 3,3 volt, vì vậy đừng sử dụng nó như là RS232. Nó là cái gì vậy?
Vality

@Vality một netbook acer - không có mô hình chính xác ở đây - Tôi chỉ tự hỏi về tài nguyên chung thực sự, sẽ mất một lúc trước khi tôi hoàn thành nó - cảm ơn.
Chris H

Vấn đề là cơ bản, bảo thủ, tương thích ngược. Đó là lý do tại sao mọi người thích Linux. Bạn không di chuyển nhanh và phá vỡ mọi thứ trong một kernel. Mọi thứ chỉ thực sự cần thay đổi khi có một lý do hợp lệ và khá phổ biến để nhân tiến lên.
JakeGould

4

Hãy tưởng tượng chạy Linux theo ảo hóa, nhiều trình giả lập vẫn dựa vào việc xuất giao diện điều khiển sang cổng nối tiếp. Đó là một tiêu chuẩn thuận tiện. Ngoài ra, máy chủ không đầu vẫn sử dụng cổng nối tiếp để liên lạc.


Nhưng không ai trong số đó là lý do tại sao nút thiết bị được tạo. Nó được tạo ra bởi vì thiết bị ở đó, liên quan đến kernel. Nếu bạn tắt UART nối tiếp trên CMOS thì sẽ không được.
GnP

1
QEMU là một ví dụ sử dụng nó nếu bạn muốn chạy VM bên trong thiết bị đầu cuối của mình: stackoverflow.com/questions/19565116/
trộm

0

Điều đáng nói là nhiều máy chủ (hầu hết?) Vẫn cung cấp quyền truy cập nối tiếp (ttyS0). Tôi cần kết nối qua kết nối nối tiếp qua mạng LAN thông qua iLO / iDRAC gần như hàng ngày. Như @Patrick đã lưu ý, tôi cũng kết nối với các máy ảo qua cổng nối tiếp khi cấu hình lại mạng, v.v.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.