TTY's no Unix e no Linux são uma espécie de "OOP pobre" no sentido de que tudo foi colocado na "classe base". Existem vários tipos de dispositivos que são cada um "tipo-de-TTY", mas todos eles possuem propriedades relacionadas a E / S serial: taxa de transmissão, bits de enquadramento, handshaking de hardware e assim por diante.
Isso é bom porque simplifica muito o modelo de programação. Em qualquer tipo de dispositivo TTY você pode chamar a função de biblioteca POSIX C tcgetattr
para obter uma estrutura de um tipo ( struct termios
) de suas propriedades: "one size fits all".
No entanto, o que isso significa é que nem todas as propriedades realmente funcionam com todos os dispositivos TTY.
Nem o console do Linux, nem um terminal virtual como o Xterm ou o Gnome Terminal realmente usam a taxa de transmissão e outras configurações de hardware para qualquer finalidade. A taxa de transmissão pode ser definida e recuperada, mas não faz nada.
Se você quer um terminal que realmente roda a 9600 bauds, você deve passar por uma porta serial, ou então escrever um patch de kernel para simular o efeito da taxa de transmissão em consoles.
Para passar por uma porta serial sem um segundo computador ou terminal real, você pode simplesmente fazer um "dongle serial USB" entre uma porta USB e uma porta RS-232. Ou, se você não tiver uma porta RS-232, vá da porta USB para o adaptador serial USB, para o cabo / conector de modem nulo, para outro adaptador serial USB e para outra porta USB.
De qualquer forma, você acaba com um par de dispositivos seriais que são colocados juntos externamente. Você transforma um em um console serial e, em seguida, executa um programa de comunicação serial no outro, como o Minicom.
(O kernel para limitar a taxa de saída do console para coincidir com a taxa de transmissão TTY configurada seria mais interessante, mas isso é só comigo.)