ヘッドフォンを接続すると、オーディオ出力デバイスがスピーカーからヘッドフォンに切り替わります。
ヘッドフォンを常に抜き差しするのではなく、最終的にコード/ジャックが磨耗するのではなく、ソフトウェアスイッチを使用したいだけです。
サウンド設定を開き、「ヘッドフォン->内蔵オーディオ」から「ライン出力->内蔵オーディオ」に切り替えると、スピーカーまたはヘッドフォンから音が出ません。
Alsamixerを開いて、ヘッドフォンのプラグを抜くとどうなるかを確認しました。
ヘッドフォンを接続した状態で、ヘッドフォンが切れていてもスピーカーから音が出ない場合は、すべての設定を手動で設定に合わせて変更しました。
補足として、「サウンド設定」でオーディオ出力デバイスを変更すると、alsamixerにも同じ変更が発生します。
設計上、Pulseaudioはヘッドフォンが接続されると自動的にライン出力をオフにし、代わりにヘッドフォンスライダーを使用します。 alsamixerでこの動作を確認できます。私たちが望むのは、ヘッドフォンとライン出力のスライダーを別々に同時に動作させることです。これは、Realtekのジャックをリマップして、ヘッドフォン用にリアグリーン、スピーカー用にブルー(alsa-toolsのhdajackretaskの助けを借りて)にしたい場合に非常に便利です。
これを実現するには、Pulseaudioミキサーの構成を直接編集する必要があります。
編集:
/usr/share/pulseaudio/alsa-mixer/paths/analog-output-lineout.conf
見つける:
[Jack Headphone]
state.plugged = no
state.unplugged = unknown
no
をyes
に変更します。
コンピューターのケースの前面にあるジャックを使用している場合は、代わりに[Jack Front Headphone]
を変更します。
Line OutをMasterにマージします。このスニペットをファイルの最後に追加します。
[Element Line Out]
switch = mute
volume = merge
編集:
/usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf
このスニペットをファイルの最後に追加します。
[Element Line Out]
switch = off
volume = off
一部のシステムでは、次のスニペットを追加して、Frontを無効にする必要があります。
[Element Front]
switch = off
volume = off
Alsamixerを開く:alsamixer -c0
またはalsamixer -c1
つかいます ←/→ 自動ミュートモードに。で自動ミュートモードを無効にする ↓。 alsamixerを閉じる Esc。
alsactl store
で変更を保存します
$ pulseaudio -k
$ pulseaudio --start
これで、pulseaudioの同じシンクに2つの個別のポートがあります。彼らはお互いをミュートするので、ヘッドフォンに切り替えることができ、これはラインアウトをミュートし、その逆も同様です。ポートを切り替えるには、GnomeまたはPlasmaサウンドミキサーを使用するか、適切なデスクトップ拡張機能をインストールします。
スピーカーとヘッドフォンを切り替えることができるようにするには、次の手順を実行します。
alsamixer
を実行します。または、1つのコマンドでこれらすべての手順を実行できます。
amixer -c 1 set 'Auto-Mute Mode' Disabled
を実行しますこれで、PulseAudioボリュームコントロールでスピーカーとヘッドフォンを切り替えることができます。
これらの手順を適用した後、 Sound Switcher Indicator を使用して、ヘッドフォンとスピーカーをすばやく切り替えることで、生活を楽にすることができます。
hdajackretaskは、さまざまな入力、出力、または無効にジャックの機能を再割り当てするツールです。たとえば、マイクジャックを追加のヘッドフォンに変えたり、両方をライン出力にしてサラウンドレシーバーに接続してみませんか?
インストール alsa-tools-gui
Sudo apt-get update
Sudo apt-get install alsa-tools-gui
hdajackretask
を実行してから、ジャックの1つをオーバーライドするには:
ヘッドフォンとスピーカーの両方を同時にオーバーライドするのが最適であることがわかりました。
hdajackretaskヘッドフォンをスピーカーに切り替えるためのスクリーンショット:
「今すぐ適用」をクリックすると、シェルスクリプトが作成され、変更を加えて、実行するスーパーユーザーパスワードの入力を求められます。スクリプトは/tmp
にも保存されます。これはコピーして、コマンドラインからSudoで後で実行できます。
前述したように、hdajackretask
はスクリプトを作成します。script.sh
は、/tmp
に、希望するジャック機能用の/tmp/hda-jack-retask-QW1EEZ/
に似ています。
#!/bin/sh
echo "0x12 0x90a60140" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x14 0x90170150" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x17 0x40000000" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x18 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x19 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1a 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1b 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1d 0x40700001" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1e 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x21 0x40f000f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo 1 | tee /sys/class/sound/hwC0D0/reconfig 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
このスクリプトをシステムの別の場所(/ tmp以外)にコピーします
cd /tmp/hda-jack-retask-QW1EEZ
cp script.sh ~username/speaker.sh
次にspeaker.shを編集します
cd ~username
nano speaker.sh
ファイルの先頭にkillall pulseaudio &
行を追加します。 pulseaudio
の実行中はジャック機能を変更できないため、これが必要です。デフォルトでは、pulseaudio
は再生成されます。また、errors.log
ファイルへのパスを/tmp
または任意の場所に変更します。
#!/bin/sh
killall pulseaudio &
echo "0x12 0x90a60140" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x14 0x90170150" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x17 0x40000000" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x18 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x19 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1a 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1b 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1d 0x40700001" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1e 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x21 0x40f000f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo 1 | tee /sys/class/sound/hwC0D0/reconfig 2>>/tmp/errors.log
スクリプトを実行するには:
Sudo ./speaker.sh
alsa-tools-1.1.5/hdajackretask/README ドキュメントから:
ほとんどのHDA Intelサウンドカードは、ある程度再タスク可能です。つまり、複数の用途に使用できます。このツールは、ジャックの再タスクを簡単にするGUIです。たとえば、マイクジャックを追加のヘッドフォンに変えたり、両方をライン出力にしてサラウンドレシーバーに接続してみませんか?
コマンドラインからアプリケーション「hdajackretask」を起動します。上部のバーでコーデックを選択します。 1つしか持っていない人もいます。複数持っている場合は1つが「メイン」で、残りはおそらくHDMIコーデックです。
すべてのジャック(および他の入力/出力)は、「ピン構成」の下に表示されます。ジャックの1つをオーバーライドするには、そのピンの[オーバーライド]チェックボックスをクリックして、目的の機能を選択します。注:「ラインアウト(背面)」オーバーライドを選択した場合、「ラインアウト(前面)」オーバーライドも必要です。 「Line out(Center/LFE)」オーバーライドは、前の2つのオーバーライドでのみ機能します。
[今すぐ適用]をクリックして、新しい構成を試すことができます。新しい設定を起動時のデフォルトにするには、「起動オーバーライドをインストール」をクリックします。これらのいずれかを実行するには、root権限が必要なので、パスワードの入力を求められる可能性があります。
あなたはめちゃくちゃにしましたか? [ブートオーバーライドの削除]ボタンをクリックします。プロセスが完了したら、コンピューターをシャットダウンし、しばらく待ってから再度オンにします。これで、開始した場所に戻るはずです。
もしそうなら、幸せになり、喜びを分かち合い、素敵なことをしてください!
うまくいかなかった場合は、次のことを試してみてください。
Alsamixerに移動して、新しいボリュームコントロールがあるかどうかを確認し、ミュートが解除されて適切な値に設定されているかどうかを確認します。
ドライバーは未接続のピンをシャットオフしない場合があります(接続されていない場合、なぜ心配ですか?)。しばらくの間、コンピューターを完全にオフにすることで、この問題を解決できる場合があります。
以下の「model = auto」オプションを参照してください
これで解決しない場合は、ドライバーまたはハードウェアの制限に直面している可能性が高くなります。ドライバーのバグに遭遇する可能性があります(これまでに4台のヘッドフォンをテストした人はいないでしょう!)。もしそうなら、お気軽にalsa-develメーリングリストでそれらを報告してください:しかし、人手不足のため、これは非常に低い優先度で処理される可能性があります奇妙な構成をサポートするよりも重要です)。しかし、もしあなたがカーネルハッカーであり、他のものを台無しにせずに問題を解決するパッチを考え出すなら、それはマージされる可能性がかなり高いです。
カーネルドライバーではなくこのGUIアプリケーションに問題があると思われる場合は、お気軽にメールをお送りください(必要に応じて、パッチを含めてください!)。その場合は、diwic @ ubuntu.comに書き込みます。
接続されていないピンを表示するBIOSは、実際に何かに接続されているコーデックのピンとそうでないピンをセットアップする役割を果たします。 BIOSにバグがあり、すべてのジャックが表示されない場合があります。 BIOSにジャックがないと言われている場合は、ランダムピンを有効にして、動作するかどうかを確認できます。
Model = autoを設定するいくつかのコーデック、特に古いものやカーネル3.8以下では、特定のモデルを使用するようにハードコードされているため、オーバーライドを気にしません。多くの場合、かなり新しいカーネルで、自動パーサーはこれらのコーデックでもうまく機能します。このボックスをチェックすると、自動パーサーを強制的に使用できます。ただし、場合によっては、明示的なモデルが理由で存在しますが、存在する場合はスタックしています。
高度なオーバーライドこれは専門家専用です。意味のあるいくつかの定義済みの値だけでなく、各構成フィールドを個別に選択できます。ここでのほとんどの組み合わせは何らかの形で無効であるため、HD Audio仕様の「Configuration Default」セクションを読んで理解していない限り、これを混乱させないでください。 (この記事の執筆時点では、次の場所にあります: http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/high-definition- audio-specification.pdf )
パーサーのヒントこれにより、解析に異なる動作を引き起こす特別な「ヒント」をドライバーに送信できます。ドライバのドキュメントを読んでいない限り、「デフォルト」設定のままにしてください。 (この記事の執筆時点では、こちらで入手できます: https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt -「ヒント文字列」を参照" セクション。 )
KDEではこれを行うことができます:
システム設定->マルチメディア->オーディオとビデオの設定->オーディオハードウェア設定タブ>適切なサウンドカードを選択>コネクタの下にヘッドフォンとスピーカーのオプションが表示されます。
Gnome-Shell Extension Audio-Output-Switcher
最も簡単な方法は、インストールするだけです audio output switcher extension
または、gitで直接クローンを作成できます。
git clone https://github.com/adaxi/audio-output-switcher.git ~/.local/share/gnome-Shell/extensions/audio-output-switcher@anduchs
この拡張機能は、現在選択されているパルスオーディオ出力デバイスを表示するステータスメニューに小さなエントリを追加します。それをクリックすると、使用可能なすべての出力デバイスを含むサブメニューが開き、使用する出力デバイスを選択できます。
PPAの追加を気にしない場合は、Sound Switcher Indicatorを使用できます。
これにより、システムトレイにインジケーターが表示され、クリックして入力または出力のオーディオソースを変更できます。詳細は http://yktoo.com/en/software/indicator-sound-switcher で読むことができます。
端末メソッド
ターミナルを使用してインストールするには、次を入力します。
Sudo add-apt-repository ppa:yktooo/ppa
Sudo apt-get update
Sudo apt-get install indicator-sound-switcher
GUIメソッド
GUIを使用してインストールするには、次の手順を実行します。
Unity DashからSoftware&Updatesアプリを起動します。
「その他のソフトウェア」タブをクリックします。次に、次の新しいソースを追加します。
deb http://ppa.launchpad.net/yktooo/ppa/ubuntu vivid main
(「vivid」をUbuntuリリースに置き換えることを忘れないでください。サポートされるリリースは http://ppa.launchpad.net/yktooo/ppa/ubuntu/dists/ にリストされています)。
Unity DashからUbuntu Software Centerを起動します。
「サウンド入力/出力セレクタインジケータ」を検索してインストールします。
注:上記のTerranceが提案したように、システムのヘッドフォンジャック内にハードウェアスイッチがある場合、このソリューションは機能しません。