como dirigir diretamente o alto-falante do PC no linux

2

No IBM PC original, você pode dirigir diretamente o alto-falante do PC, escrevendo uns e zeros para o bit 1 do endereço de E / S 0x61; era basicamente um DAC de 1 bit rodando a uma freqüência de 1.19 MHz (clock do sistema de 4.77MHz, dividido por 4).

Existe uma maneira de fazer isso no linux? Idealmente, eu gostaria de ter um dispositivo serial que eu pudesse apenas alimentar um arquivo ou um bitstream em tempo real, e tê-lo conectado diretamente ao pino de tensão do alto-falante TTL na placa-mãe. A maioria das coisas que eu vi programas on-line relógio 2 do PIT via ioctls, mas eu quero dirigir o alto-falante diretamente, não através do temporizador.

    
por James Georgas 07.06.2017 / 03:05

1 resposta

2

Existe um módulo do kernel chamado snd-pcsp que exatamente tenta fazer isso (o código fonte está em sound/drivers/pcsp/ , você pode ver como ele endereça a porta 0x61). Ele é exposto como um dispositivo ALSA, por isso é fácil alimentar um fluxo de bits em tempo real.

No entanto, no meu sistema, o som que produz de forma audível não se parece muito com o que você coloca, pelo menos não o que eu tentei. Mas você não disse o que você quer usar. Eu também não acho que você pode ir até 1,19 MHz. Mas você sempre pode modificar o módulo do kernel para adaptá-lo às suas necessidades.

Se isso não funcionar, nada impedirá que você grave na porta 0x61 se o seu aplicativo de espaço do usuário for root e puder executar ioperm . Mas é claro que você tem o problema de que o Linux não é um sistema operacional em tempo real, e seu aplicativo pode ser eliminado a qualquer momento. (E eu estaria interessado em maneiras de evitar isso também, como reservar um núcleo para esse aplicativo em particular).

    
por 07.06.2017 / 07:42

Tags