Por que o Linux não me deixa brincar com / dev / dsp?

11

Estou trabalhando em um livro de texto do Linux e está me informando sobre dispositivos. Ele diz que, se eu enviar a saída apropriada para /dev/dsp , ele reproduzirá um som. O exemplo é cat file.wav > /dev/dsp , em que file.wav é qualquer arquivo .wav.

Quando faço isso, recebo permissão negada. Se eu executar isso com o sudo, ainda receberei permissão negada. Se eu su primeiro, nenhum som será reproduzido.

Por que recebo permissão negada com sudo ? Por que nenhum som é reproduzido mesmo com su ?

    
por Korgan Rivera 04.12.2013 / 23:07

3 respostas

13

/dev/dsp faz parte do OSS, que não faz parte do kernel Linux há muito tempo. Há muito tempo foi suplantado pelo ALSA, que usa dispositivos diferentes, programas diferentes e uma API diferente.

Existe um módulo de camada de emulação. Se estiver disponível, o carregamento do módulo snd-pcm-oss permitirá que você use os dispositivos PCM para OSS, como /dev/dsp .

Ou simplesmente cole os dados da tubulação em aplay ou paplay .

    
por 05.12.2013 / 00:02
9

If I run this with sudo I still get permission denied.

Por esta afirmação, parece que você está tentando um comando como:

sudo cat file.wav > /dev/dsp

O motivo pelo qual você continua recebendo "permissão negada" é que seu shell primeiro tenta abrir o dispositivo /dev/dsp para saída, antes executando o comando (que é %código%). Para que o shell abra o redirecionamento com privilégios de root, você teria que fazer algo como:

sudo sh -c 'cat file.wav > /dev/dsp'
    
por 04.12.2013 / 23:55
6

Livro desatualizado, conforme observado.
Então, para fazer os exemplos funcionarem com o Linux mais moderno, onde diz algo como

cat music.wav > /dev/dsp

altere para:

cat music.wav | aplay

E você acabou de fazer seu primeiro porting de código! Ganhar! Sinta-se à vontade para enviar os patches do autor do livro. : -)

    
por 29.07.2014 / 09:44