Dlaczego niektóre dystrybucje Linuksa nadal mają / dev / ttyS0, ttyS1 itp., Chociaż nowsze komputery nie mają takiego portu szeregowego?

34

Wiele nowych laptopów i komputerów stacjonarnych nie ma 9-pinowych / 25-pinowych portów szeregowych. Dlaczego wielu dystrybucji Linuksa nadal zawierają /dev/ttyS0, dev/ttyS1pliki urządzeń?

Ponieważ udevmogą tworzyć pliki urządzeń dynamicznie, dlaczego /dev/ttyS0, /dev/ttyS1ciągle tworzone statycznie? Za każdym razem, gdy uruchamiam komputer /dev/ttyS0i /dev/ttyS1tam jestem .

Przy okazji: używam Debiana 7.0.

cli__
źródło

Odpowiedzi:

41

Te /devwęzły pojawiają się, ponieważ standardowy sterownik portu szeregowego komputera PC jest wkompilowany w używane jądro i znajduje UART . To powoduje /sys/devices/platform/serial8250(lub coś kompatybilnego) pojawienie się, więc udev tworzy odpowiednie /devwęzły.

Te UART są najprawdopodobniej jedną z wielu funkcji chipsetu płyty głównej. Szeregowe UART w chipsecie są wciąż dość powszechne, mimo że coraz mniej powszechne jest podłączanie złącza DB-9 do tych pinów IC UART.

Na niektórych płytach głównych znajduje się złącze nagłówka dla każdego portu szeregowego, a jeśli chcesz poprowadzić to złącze z tyłu komputera, musisz kupić kabel adaptera:

10-pinowe złącze do kabla adaptera DB-9M

Inne płyty główne korzystające z tego samego mikroukładu mogą nawet nie ujawniać złącza nagłówka, nawet jeśli ta funkcja jest dostępna w krzemie, aby zaoszczędzić trochę miejsca na płytce drukowanej i kilka centów za złącze nagłówka.

Kilka szeregowych UART dodaje znikomy koszt do masowo produkowanego chipsetu komputerowego, podczas gdy dodaje kilka dolarów do końcowego kosztu detalicznego płyty głównej, aby poprowadzić złącze DB-9 do krawędzi płyty. Miejsce na płytce drukowanej wiąże się również z pewnym kosztem; przestrzeń na krawędzi deski jest szczególnie cenna.

Nie ma standardowego sposobu sprawdzenia istnienia urządzenia podłączonego do portu szeregowego RS-232.

W przeciwieństwie do USB, gdzie sama obecność portu na płycie głównej nie powoduje utworzenia /devwęzła, ale podłączenie urządzenia robi to, ponieważ istnieje dość skomplikowana negocjacja między urządzeniem a systemem operacyjnym hosta. W efekcie urządzenie ogłasza się do systemu operacyjnego, więc udevmoże zareagować, tworząc odpowiedni /devwęzeł dla urządzenia.

Warren Young
źródło
11
Poleciłbym również wspomnieć, że wiele płyt głównych do laptopów - ma szeregowy kontroler, po prostu nigdzie się nie wybiera, więc nie można go używać bez demontażu laptopa i lutowania w punktach testowych, wielu producentów używa tego do podstawowych kontroli linii produkcyjnej aby zapewnić podstawowy poziom funkcji na płycie głównej przed wysyłką. Jednak w przypadku Linuksa oznacza to, że istnieje port szeregowy i tworzy on instancję, jak można się spodziewać dla każdej płyty z kontrolerem szeregowym.
Rzeczywistość
@Vality, czy znasz jakieś przydatne informacje na ten temat - mam dostęp do laptopa, który jutro zostanie uznany za przestarzały i dlatego jest gotowy na (a) Linuksa i (b) majsterkowanie.
Chris H
1
@ChrisH Cóż, to zależy w pewnym stopniu od laptopa, musisz znaleźć arkusz danych lub przynajmniej przewodnik hakowania płyty głównej laptopa, w zależności od modelu, niektóre będą miały prawidłowy układ do lutowania na nagłówku szeregowym, choć niektóre tańsze plansze mają po prostu rozrzucone punkty testowe na planszy. Jeśli masz szczęście, a wcześniej jest tak, że możesz po prostu przylutować do nagłówka, podłącz do niego kabel, prawdopodobnie wyciąć małą dziurę w laptopie, aby gniazdo się zmieściło, a wtedy będziesz miał port. Pamiętaj, że będzie to 5 lub 3,3 V, więc nie używaj go jako RS232. Co to za laptop?
Rzeczywistość
@Vality acer netbook - nie mam tutaj dokładnego modelu - tak naprawdę zastanawiałem się nad ogólnymi zasobami, minie trochę czasu, nim się zajmę - dzięki.
Chris H
Problemem jest podstawowa, konserwatywna, kompatybilność wsteczna. Dlatego ludzie lubią Linuksa. Nie „poruszasz się szybko i nie psujesz rzeczy” w jądrze. Rzeczy naprawdę muszą się zmienić tylko wtedy, gdy istnieje ważny - i dość uniwersalny - powód, dla którego jądro ma iść naprzód.
JakeGould,
4

Wyobraź sobie, że Linux działa w trybie wirtualizacji, wiele emulatorów nadal polega na wysyłaniu konsoli do portu szeregowego. To wygodny standard. Ponadto serwer bezgłowy nadal używa portu szeregowego do komunikacji.

Patrick
źródło
Ale żaden z tych powodów nie powoduje utworzenia węzła urządzenia. Jest tworzony, ponieważ urządzenie istnieje, jeśli chodzi o jądro. Jeśli wyłączysz szeregowy UART na CMOS, nie będzie.
GnP
1
QEMU to przykład, który używa go, jeśli chcesz uruchomić
maszynę
0

Warto wspomnieć, że wiele (większość?) Serwerów nadal zapewnia dostęp szeregowy (ttyS0). Muszę łączyć się przez połączenie szeregowe przez sieć LAN przez iLO / iDRAC prawie codziennie. Jak zauważył @Patrick, łączę się z maszynami wirtualnymi również przez port szeregowy podczas rekonfiguracji sieci itp.

David
źródło