Por que o alto-falante do PC é considerado um dispositivo de entrada na configuração do kernel?

1

Algo que sempre me incomodou sobre a configuração do kernel do Linux: o alto-falante do PC como uma fonte de bipes genéricos é considerado um dispositivo de "entrada diversa ". Por que é isso? Eu esperaria que fosse em alguma categoria relacionada à saída, ou talvez "Dispositivos diversos".

  │ CONFIG_INPUT_PCSPKR:
  │ 
  │ Say Y here if you want the standard PC Speaker to be used for
  │ bells and whistles.
  │
  │ Prompt: PC Speaker support
  │   Location:
  │     -> Device Drivers
  │       -> Input device support
  │         -> Generic input layer (needed for keyboard, mouse, ...) (INPUT [=y])
  │           -> Miscellaneous devices (INPUT_MISC [=y])

(Nota: isso é diferente do uso do alto-falante do PC como uma placa de som ALSA / OSS).

    
por Mark 30.06.2017 / 03:01

1 resposta

2

Provavelmente porque era conveniente na época e a maneira mais simples de torná-lo acessível ao usuário usando estruturas de kernel já presentes.

Não é tão conhecido que alguém possa escrever os arquivos /dev/input/eventX e, assim, gerar eventos em nível de entrada.

Da mesma forma, é possível gravar EV_SND events no arquivo /dev/input/eventX representando o palestrante (ou em um dos links simbólicos, normalmente /dev/input/by-path/platform-pcspkr-event-spkr ), e dessa forma usar o alto-falante para gerar som. Isso é ainda menos conhecido. : -)

Aqui está um perl oneliner que gera uma nota com o tom especificado

perl -e 'print pack("qssl", 0, 0x12, 2, 2000)' > /dev/input/by-path/platform-pcspkr-event-spkr

e aqui está outro onliner para desativá-lo

perl -e 'print pack("qssl", 0, 0x12, 2, 0)' > /dev/input/by-path/platform-pcspkr-event-spkr

BTW, os eventos de plug para dispositivos de áudio HDA também aparecem na camada de entrada como /dev/input/eventX files. Embora seja um pouco mais lógico classificá-los como eventos reais de entrada .

    
por 30.06.2017 / 09:07