왜 리눅스에서 / dev / dsp를 사용할 수 없습니까? 적절한 출력을에 보내면 /dev/dsp소리가

Linux 교과서를 통해 작업 중이며 장치에 대해 알려줍니다. 적절한 출력을에 보내면 /dev/dsp소리가 재생됩니다. 예를 들어 cat file.wav > /dev/dsp, file.wav는 모든 .wav 파일입니다.

이렇게하면 권한이 거부됩니다. sudo로 이것을 실행하면 여전히 권한이 거부됩니다. 내가 만약 su첫째, 사운드가 재생되지 않습니다.

권한이 거부 된 이유는 무엇 sudo입니까? 왜 소리가 들리지 su않습니까?



답변

/dev/dspLinux 커널에 포함되지 않은 OSS의 일부입니다. ALSA는 오랫동안 다른 장치, 다른 프로그램 및 다른 API를 사용합니다.

에뮬레이션 레이어 모듈이 있습니다. 사용 가능한 경우 snd-pcm-oss모듈 을로드 하면와 같은 OSS 용 PCM 장치를 사용할 수 있습니다 /dev/dsp.

또는 파이핑 데이터를 그대로 aplay또는 paplay대신 사용하십시오.


답변

sudo로 이것을 실행하면 여전히 권한이 거부됩니다.

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

sudo cat file.wav > /dev/dsp

“permission denied”가 계속 발생하는 이유 는 명령 ()을 실행 하기 전에 쉘이 먼저/dev/dsp 출력을 위해 장치 를 열려고 하기 때문sudo 입니다. 쉘이 루트 권한으로 경로 재 지정을 열려면 다음과 같은 작업을 수행해야합니다.

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

답변

명시된 바와 같이 오래된 책.
예를 들어 더 현대적인 리눅스에서 작동하게하려면 다음과 같이 말합니다.

cat music.wav > /dev/dsp

그것을 다음으로 변경하십시오 :

cat music.wav | aplay

그리고 첫 번째 코드 포팅을 완료했습니다! 승리! 책 저자 패치를 자유롭게 보내십시오. 🙂