web-dev-qa-db-ja.com

Slackware64上の32ビットWindowsプログラムで(ALSA互換性レイヤーを介して)pulseaudioへの出力をサポートするようにwineを入手するにはどうすればよいですか?

だから、私は slackbook の指示に従って動作するmultilibセットアップを持っています。私は32ビットのWindowsプログラム(つまりSkyrimとDeus Ex:Human Revolution)でうまく動作するワインを持っています。そして、私はpulseaudioをネイティブ64ビットプログラム用に正常にインストールして設定しました。通常、wineを使用する前にpulseaudio --killでpulseaudioを強制終了します。そうせずに何かを実行すると、起動元のターミナルにポップアップが表示されます。

fixme:win:EnumDisplayDevicesW ((null),0,0x33f7d8,0x00000000), stub!
ALSA lib Pulse.c:243:(Pulse_connect) PulseAudio: Unable to connect: Connection refused
ALSA lib Pulse.c:243:(Pulse_connect) PulseAudio: Unable to connect: Connection refused

この次の部分は、Slackbookのmultilibページで必要であることに気付いたので、export Arch=i486の後に. /etc/profile.d/32dev.shを追加することで解決しました。この修正により、少なくともjson-cとspeex(slackbuilds.orgのpulseaudioの指定された依存関係)をi486パッケージとしてコンパイルし、convertpkg-compat32を使用してcompat32パッケージに変換してインストールすることができました。

私はお勧めを試しました

#。 /etc/profile.d/32dev.sh

sbopkg -b pulseaudioを実行する前ですが、結果のパッケージはi486ではなくx86-64パッケージのままになります。また、Slackwareにはネイティブにpulseaudioがディストリビューションに含まれておらず、Alienbobのslackbuildsリポジトリにコンパイルされたバージョンがないため、converpkg-compat32を実行するための32ビットバイナリパッケージを見つけることができませんでした。

ただし、残りの問題は、これらの依存関係のコンパイルに使用したのと同じ方法を使用してpulseaudioをコンパイルしようとすると、次のようになることです。

daemon/pulseaudio-caps.o: In function `pa_drop_caps':
/tmp/SBo/pulseaudio-5.0/src/daemon/caps.c:85: undefined reference to `cap_init'
/tmp/SBo/pulseaudio-5.0/src/daemon/caps.c:86: undefined reference to `cap_clear'
/tmp/SBo/pulseaudio-5.0/src/daemon/caps.c:87: undefined reference to `cap_set_proc'
/tmp/SBo/pulseaudio-5.0/src/daemon/caps.c:88: undefined reference to `cap_free'
collect2: error: ld returned 1 exit status
make[3]: *** [pulseaudio] Error 1

この次の問題は、libcapとGConfをcompat32パッケージとしてインストールした後、pulseaudio.Slackbuildスクリプトを再実行することで修正しました(ここでも、上記のパッケージと同様に32dev環境で)。

これは、Slackbuilds.orgに記載されていない、依存関係としてインストールする必要があるライブラリがないという問題ですか?私がそのような状況に遭遇したのは確かに初めてではありませんが、通常、必要なライブラリを探すことになると、私のエラーはもう少し役に立ちます。

このようにpulseaudioをインストールしたら、winecfgを実行してサウンドをテストしました(注:これを/usr/bin/pulseaudio --startで実行しようとしましたが、それが機能しない場合は、サーバーを強制終了して/usr/bin/32/pulseaudio --startで試行しました。どちらも同じ結果になりました。結果)。結果のエラーメッセージは次のとおりです。

ALSA lib dlmisc.c:252:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib64/alsa-lib/libasound_module_pcm_Pulse.so
ALSA lib dlmisc.c:252:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib64/alsa-lib/libasound_module_pcm_Pulse.so
libgcc_s.so.1 must be installed for pthread_cancel to work

/usr/lib64/alsa-lib/libasound_module_pcm_Pulse.soをバックアップし、その場所に/usr/lib/alsa-lib/libasound_module_pcm_Pulse.soへのシンボリックリンクを作成し、ファイルをコピーしてみました。出てきたエラーメッセージに何でも影響します。また、環境変数ALSA_MIXER_SIMPLE_MODULES/usr/lib/alsa-libに設定しようとしましたが、それでも役に立ちませんでした。アイデアが不足し始めています。

大多数のユーザーがSlackwareを使用することに興味がないように見えるため、これはSlackwareの未知の領域であることを私は知っていますが、それが機能しない理由はありません。誰かが取得について賢明なアドバイスを持っているかどうかだけ知りたいですこのパッケージは、インストールできるようにコンパイルされています。誰かがこの状況を直接経験しているなら、はるかに良いです。

2
0xDAFACADE

したがって、これに関する多くの悲しみの原因は、各ステップの後にwinecfgを使用してテストしていたようです(これでも、編集の最後の質問で行ったのと同じエラーが発生します)。重要なことは、途中で、実際にワインでwin32アプリケーションを使用することですDID作業を開始します。

これに沿ってやってくる人のために私が思う関連情報は次のとおりです。

  1. export Arch=i486を使用する前、または.Slackbuildスクリプトを実行する前に、. /etc/profile.d/32dev.shの使用に加えてsbopkg -bを確認する必要があります。これは実際にはSlackbookにある説明に記載されていますが、見逃しやすいように見えたので(または、少なくとも私は個人的に見逃した)、念のためここに含めます。
  2. Compat32形式のjson-cspeexに加えて、compat32形式のlibcapGConfも必要ですが、これを実現するには、両方のパッケージを取得します。 (Slackware64ではなく)Slackwareから mirror 「L」パッケージセット内。他のいくつかのパッケージの中でもalsa-pluginsが必要ですが、これらはすべて、Slackbookの multilib の指示に従うプロセスに含まれている必要があります。
  3. 当然、適切な場所への送信を処理するには、適切なALSA構成ファイルが必要です。これは私が遭遇した問題ではありませんでしたが、作業中の〜/ .asoundrcファイルを以下に含めます。
  4. そして最後に、winecfgのようなものではなく、実際のwin32プログラムで動作していることを確認します。 Winecfgは、質問で最後に報告したのと同じエラーを引き続き生成し、問題を引き起こすことなく、オーディオ設定を「システムデフォルト」に設定したまま安全に残すことができます。 wineはpulseaudioを直接サポートしていませんが、ALSA互換性レイヤーを介してそれを利用しているだけなので、この動作が心配する価値のあるものである理由はわかりません。

〜/ .asoundrc

pcm.!default {
    type Pulse
}
ctl.!default {
    type Pulse
}

pcm.phononpulse
{
   type plug

   slave.pcm
   {
      type Pulse
   }

   hint
   {
      show on
      description "PulseAudio"
   }
}

pcm.Pulse {
    type Pulse
    hint {
        show on
        description "PulseAudio"
    }
}

とにかく、これが私の後に来てこの問題に遭遇した人への良い参考になることを願っています。そうでない場合は、新しいシステムをセットアップするたびに、それを参照する必要があると確信しています。

0
0xDAFACADE