왜 리눅스에서 / dev / dsp를 사용할 수 없습니까?


12

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

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

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


1
사용자가 audio그룹 에 있는지 확인하십시오 .
Carl Groner

wav 파일이 원시 오디오인지 확인해야 할 수도 있습니다. 모든 .wav 파일이 원시는 아닙니다.
Drake Clarris

@DrakeClarris, 권한 거부 오류가 아닌 노이즈가 출력됩니다.
cjm

su를 사용하여 재생할 때 @cjm 좀 더 침묵의 생각
드레이크 Clarris

답변:


14

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

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

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


2
sudo modprobe snd-pcm-oss내 우분투에서 해당 모듈을로드합니다. 나는 이것 /dev/dsp1에서 /dev/dsp2벗어났다.
Veda

9

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

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

sudo cat file.wav > /dev/dsp

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

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

6

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

cat music.wav > /dev/dsp

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

cat music.wav | aplay

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.