Linux에서는 왜 /dev/dsp를 사용할 수 없나요?

Linux에서는 왜 /dev/dsp를 사용할 수 없나요?

Linux 교과서를 읽고 있는데 장치에 대해 알려줍니다. 적절한 출력을 보내면 /dev/dsp사운드가 재생된다고 합니다. 예를 들어 cat file.wav > /dev/dspfile.wav는 임의의 .wav 파일입니다.

이렇게 하면 내 허가가 거부됩니다. sudo로 실행해도 여전히 거부됩니다. 내가 su먼저 가면 소리가 나지 않습니다.

내 허가가 거부된 이유는 무엇입니까 sudo? 사용하는데 왜 소리가 나지 않나요 su?

답변1

/dev/dsp이는 오랫동안 Linux 커널의 일부가 아니었던 OSS의 일부입니다. 오랫동안 다른 장치, 다른 프로그램, 다른 API를 사용하는 ALSA로 대체되었습니다.

그러나 시뮬레이션 레이어 모듈이 있습니다. 가능한 경우 이 모듈을 로드하면 OSS가 포함된 snd-pcm-ossPCM 장치를 사용할 수 있습니다./dev/dsp

아니면 그냥 데이터를 aplay또는 으로 전송하라고 주장하세요 paplay.

답변2

sudo로 실행해도 여전히 거부됩니다.

이 문장을 사용하면 다음과 같은 명령을 시도하는 것처럼 들립니다.

sudo cat file.wav > /dev/dsp

"권한 거부" 메시지가 계속 나타나는 이유는 쉘이첫 번째/dev/dsp출력을 위해 장치를 열어보십시오 .앞으로명령(예: sudo)을 실행합니다. 쉘이 루트 권한으로 리디렉션을 열도록 하려면 다음을 수행해야 합니다:

sudo sh -c 'cat file.wav > /dev/dsp'

답변3

언급했듯이 오래된 책입니다.

따라서 이러한 예제를 보다 현대적인 Linux에서 작동하게 하려면 다음과 같이 말해야 합니다.

cat music.wav > /dev/dsp

다음으로 변경하세요.

cat music.wav | aplay
# or
aplay music.wav

관련 정보