質問: デジタル入力 S/PDIF/IEC958 音が出ません。
機器/ソフトウェア: USB外部サウンドカード: CM106 - Ubuntu 20.04 LTS - GUI: Gnome-FlashBack
オーディオ設定: FreeBox Player(フランスのインターネットテレビプロバイダー) - デジタル出力S / PDIF == [TosLink] =>サウンドカード - デジタル入力S / PDIF
FreeBoxプレーヤーの設定:パススルーの有無にかかわらず、基本的なサウンド出力S / PDIF
グラフィック pavucontrol またはパルスコマンドライン応答に数値入力 iec958 が表示されます。しかし、サウンドメーターはまだ空で、音もなく信号もありません。
FreeBox Player S / PDIF出力を確認できる他のサウンドデバイスはありません。
デジタル信号/データがあるかどうかを確認できるファイルは/sys、/proc、または/devにありますか?
iec958入力は表示されますが、音/信号は表示されませんか?なぜ?
これを操作するために実行する必要がある特定のタスクはありますか?
この問題をどのように解決しますか?どこから始めますか?どのようなステップを経ていますか?
私はそれを修正しようと多くの週末を過ごし、フォーラムを読んだ。私が試したすべてとここで詳しく説明することを覚えていません。このトラブルシューティングに関するご質問にお答えします。
ご協力ありがとうございます。
答え1
pavucontrolに入力レベルが表示されている場合、カードは出力を受け取り、それを記録できる必要があります。
私の経験では、連続録音/再生を設定する以外に、パルスオーディオを使用してカードをライン出力に転送するようにカードを設定する方法はありません。
amixerを使用してこれを変更できますが、これはカードによって異なり、カードはこれをまったく実行できない可能性があるため、継続的な(CPUを消費する)ループバックソリューションがある可能性があります。
問題が入力に何も表示されない場合は、カードを設定する必要があります。 pavucontrolで、「デジタルステレオ(IEC958)入力」などの項目を含めるように、構成の下のプロファイルを変更します。
修正する:
私はCM106デバイスを試しましたが、Linuxドライバは出力でspdifミックスをサポートしていないようです。
しかし、データシートによると(http://www.steila.com/usb4io/CMedia/CM106--L_F-Datasheet-1.3.pdf)、カードはこれをサポートします。実際、いくつかの実験でSPDIFMIXを有効にするためにレジスタ1に値を書き込むことでこれを有効にしました(hidraw1はUSBサウンドカードに対応するhidrawデバイスです。接続されている場合はdmesgを確認してください)。
perl -e 'print pack "H*", "002001b001"' >/dev/hidraw1
これは、レジスタをパワーオンのデフォルト値(00b0)+ SPDIFMIXイネーブル(01b0)(リトルエンディアン)に設定します。
次のシェルスクリプトハックは、すべての「USBサウンドデバイス」にこのビットを設定します。これは間違ったカードと一緒に使用すると危険です。
#!/bin/sh
cd /sys/class/hidraw || exit
for dev in *; do
set "$dev"/device/input/*/name
read name <"$1"
if [ "$name" = "USB Sound Device" ]; then
echo "enabling SPDIFMIX on $dev"
printf "\000\040\001\260\001" >/dev/"$dev"
fi
done