Por que algumas distribuições Linux ainda possuem / dev / ttyS0, ttyS1, etc., mesmo que computadores mais novos não possuam essa porta serial?

34

Muitos novos laptops e computadores de mesa não possuem portas seriais de 9 ou 25 pinos. Por que muitas distribuições Linux ainda contêm /dev/ttyS0, dev/ttyS1arquivos de dispositivos?

Desde udevpode criar os arquivos de dispositivos dinamicamente, por que /dev/ttyS0, /dev/ttyS1ainda criado estaticamente? Cada vez que eu inicializo, /dev/ttyS0e estou /dev/ttyS1lá.

A propósito: eu estou usando o Debian 7.0.

cli__
fonte

Respostas:

41

Esses /devnós aparecem porque o driver da porta serial do PC padrão é compilado no kernel que você está usando e está encontrando UARTs . Isso faz com que /sys/devices/platform/serial8250(ou algo compatível) apareça, então o udev cria os /devnós correspondentes .

Esses UARTs são provavelmente um dos muitos recursos do chipset da sua placa-mãe. UARTs seriais no chipset ainda são bastante comuns, embora esteja se tornando cada vez menos comum um conector DB-9 ser conectado a esses pinos IC UART.

Em algumas placas-mãe, há um conector de cabeçalho para cada porta serial e você precisa comprar um cabo adaptador se desejar direcionar esse conector para a parte traseira do PC:

Cabeçalho de 10 pinos ao cabo adaptador DB-9M

Outras placas-mãe que usam o mesmo chipset podem até não expor o conector do cabeçalho, mesmo que o recurso esteja disponível em silício, para economizar um pouco de espaço da PCB e alguns centavos para o conector do cabeçalho.

Alguns UARTs seriais agregam custos insignificantes a um IC de chipset para PC produzido em massa, ao passo que adicionam alguns dólares ao custo final de varejo de uma placa-mãe para executar um conector DB-9 na borda da placa. Há também um custo no espaço PCB; o espaço na borda da placa é especialmente precioso.

Não existe uma maneira padrão de verificar a existência de um dispositivo conectado a uma porta serial RS-232.

Contraste USB, onde a mera presença de uma porta na placa-mãe não causa /deva criação de um nó, mas a conexão de um dispositivo faz, porque existe uma negociação bastante complexa entre o dispositivo e o sistema operacional host. Com efeito, o dispositivo se anuncia ao sistema operacional, portanto, udevpode reagir criando um /devnó apropriado para o dispositivo.

Warren Young
fonte
11
Eu também recomendaria mencionar que muitas placas-mãe de laptops - possuem um controlador serial, não são direcionadas a lugar algum - portanto, não podem ser usadas sem desmontar o laptop e soldar nos pontos de teste, muitos fabricantes usam isso para fazer algumas verificações básicas na linha de produção para garantir um nível básico de função na placa-mãe antes do envio. No entanto, no que diz respeito ao Linux, isso significa que há uma porta serial e a instancia como seria de esperar para qualquer placa com um controlador serial.
Validade
@Vality, você conhece alguma informação útil sobre isso - eu acesso um laptop que será considerado obsoleto amanhã e, portanto, está pronto para (a) Linux e (b) consertar.
Chris H
11
@ChrisH Bem, depende um pouco do laptop, você precisará encontrar uma folha de dados, ou pelo menos um guia de hackers para a placa-mãe do laptop, dependendo do modelo, alguns terão o layout correto para soldar facilmente em um cabeçalho serial, embora alguns placas mais baratas têm apenas alguns pontos de teste espalhados pela placa. Se você tiver sorte e, quanto mais cedo for o caso, basta soldar em um cabeçalho, conectar um cabo a ele, provavelmente abrir um pequeno buraco no laptop para o soquete encaixar, e você terá uma porta. Lembre-se de que serão 5 ou 3,3 volts, portanto, não o use como RS232. Que laptop é esse?
Vality
@ Validade um netbook acer - não tem o modelo exato aqui - eu estava pensando sobre recursos gerais, realmente, vai demorar um pouco antes de eu chegar a ele - obrigado.
Chris H
O problema é básico, conservador, compatibilidade com versões anteriores. É por isso que pessoas como Linux. Você não “move rápido e quebra coisas” em um kernel. As coisas realmente precisam mudar quando há uma razão válida - e bastante universal - para o kernel avançar.
precisa saber é o seguinte
4

Imagine executar o Linux sob virtualização, muitos do emulador ainda dependem da saída do console para a porta serial. É um padrão conveniente. Além disso, o servidor sem cabeça ainda usa a porta serial para comunicação.

Patrick
fonte
Mas nenhuma dessas são razões pelas quais o nó do dispositivo é criado. Ele é criado porque o dispositivo está lá, no que diz respeito ao kernel. Se você desativar o UART serial no CMOS, não será.
GnP 10/04
11
QEMU é um exemplo que usa-lo se você deseja executar o VM dentro do seu terminal: stackoverflow.com/questions/19565116/...
Ciro Santilli新疆改造中心法轮功六四事件
0

Vale ressaltar que muitos servidores (a maioria?) Ainda fornecem acesso serial (ttyS0). Preciso conectar-me através de uma conexão Serial-over-LAN através do iLO / iDRAC quase diariamente. Como o @Patrick observou, eu também me conecto às máquinas virtuais pela porta serial ao reconfigurar a rede etc.

David
fonte