Recentemente, tive o caso de compilar um driver para um adaptador PCIe to Serial . (mais especificamente, o chipset AX99100 nessa placa)
Para um teste rápido, eu realmente não instalei o driver, apenas usei o insmod
comando para carregar o driver.
Ao olhar para dmesg
, achei muito estranho que ele gerasse /dev/ttyF0
e /dev/ttyF1
em vez de /dev/ttyS0
e/dev/ttyS1
Eu queria saber como esse nome de dispositivo veio a ser?
Isso foi por causa insmod
ou foi por causa do PCIe ou talvez devido ao sistema operacional?
O motorista funcionou normalmente.
No Linux,
ttyS
não é o nome genérico para todas as portas seriais – é o nome para portas seriais 8250 UART em PCs e portas seriais "incorporadas" de forma semelhante em algumas outras plataformas.Portanto, cada driver decide seus próprios nomes ao criar um dispositivo, e muitos drivers para placas seriais "complementares" (que usam vários chips proprietários) selecionam deliberadamente um prefixo diferente para evitar confusões. No seu caso, os autores do driver optaram por usar
ttyF
.(Afinal, a placa PCI na verdade não emula uma porta serial 8250. O sistema operacional a vê como um dispositivo completamente novo e diferente – e é por isso que ela precisa de um driver personalizado em primeiro lugar.)
Aqui estão alguns outros exemplos que vêm embutidos no Linux (e que encontrei com 'grep'):