Linuxで/ dev / dspを操作できないのはなぜですか?


12

私はLinuxの教科書を読んでいますが、デバイスについて教えてくれます。適切な出力をに送信する/dev/dspと、サウンドが再生されると書かれています。例はcat file.wav > /dev/dsp、file.wavが単なる.wavファイルである場合です。

これを行うと、許可が拒否されます。これをsudoで実行すると、許可が拒否されます。su最初に音が出ない場合。

なぜ許可されsudoないのですか?どうして音が出ないのsuですか?


1
ユーザーがaudioグループに属していることを確認してください。
カールグローナー

また、wavファイルが生のオーディオであることを確認する必要がある場合があります。すべての.wavファイルが生ではありません。
ドレイククラリス

@DrakeClarris。これにより、許可拒否エラーではなく、ノイズが出力されます。
cjm

@cjm suを使用してプレイするときの沈黙をもっと考えていました
Drake

回答:


14

/dev/dspOSSの一部であり、これは非常に長い間Linuxカーネルの一部ではありませんでした。異なるデバイス、異なるプログラム、異なるAPIを使用するALSAに長い間取って代わられています。

ただし、エミュレーション層モジュールがあります。利用可能な場合は、snd-pcm-ossモジュールをロードすると、OSSなどのPCMデバイスを使用できるようになります/dev/dsp

または、単に、aplayまたはpaplay代わりにデータを配管することに固執します。


2
sudo modprobe snd-pcm-oss私のubuntuで動作してそのモジュールをロードします。私が取得/dev/dsp1し、/dev/dsp2これをアウト。
ベダ

9

これをsudoで実行すると、許可が拒否されます。

このステートメントでは、次のようなコマンドを試行しているように聞こえます。

sudo cat file.wav > /dev/dsp

「許可を拒否」され続ける理由は、コマンドを実行する前に、シェルが最初/dev/dspに出力のためにデバイスを開こうとするためです(これは)。シェルがルート権限でリダイレクトを開くようにするには、次のようにする必要があります。sudo

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

6

前述のように、古くなった本。
したがって、例を最新のLinuxで動作させるには、

cat music.wav > /dev/dsp

次のように変更します。

cat music.wav | aplay

そして、コードの最初の移植が完了しました!勝つ!本の著者のパッチを送ってください。:-)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.