(55以降でもapulseを使えるようにする方法)Puppy Linux(TahrPup,XenialPup)でFirefoxを使う場合はPulseAudioをインストールする必要がある
以下の記事の下に書いてある方法を使うことでFirefoxバージョン57でもapulseを使ってYouTube、AbemaTVが問題なく再生できました。
参考にしてください。
記事の最後にバージョン55以降でもapulseが使えるようにする方法を追記しました。
Puppy Linux日本語フォーラムで、この記事が紹介されていたが、わかりづらいと言われてしまった。
もともと文章がうまくないし、試行錯誤をそのままどんどん追記しているのでわかりづらいだろう・・・。
結論としては、Firefoxではバージョン52からPulseAudioを使うようになり、そのときは上のリンク先のZstepさんが作ったapulseのpetパッケージが使えた。
しかし、バージョン54でapulseが使えなくなった。
下に書いてあるように、32bitではpulseaudio-4.0-tahr606-i386.petをインストールするとうまくいくはず。
また、TahrPupやXenialPupなどはPuppyパッケージマネージャーにあるPulseAudioをインストールしてもうまく動作する。
リポジトリのデータベースを更新して、「pulseaudio」で検索すると出てくる。
実はpulseaudioはすでにインストールされていることになっており、警告が出る。
インストールされているのにpulseaudioコマンドがないのである。
警告を無視して、pulseaudioをインストール(つまりアップデート)すると、
pulseaudio --start
が使えるようになるはずだ。
これを「Boot Manager」で設定すると起動時にpulseaudioがスタートされるようにできる。
フォーラムのlibra3914さんはSeaMonkeyをインストールすることで問題を回避できたようだが、Firefox ESR(延長サポート版)を使う方法もある。
Mozilla Firefox ウェブブラウザー — 各国語の Firefox Extended Support Release をダウンロード — Mozilla
現在のESR版はバージョン52ベースなのでALSAを使った音声出力ができ、これならPulseAudioをインストールする必要がない。
uBlock Originで不具合が起きてちょっとした騒ぎになったが、Web Extentionを使っていない古いアドオンを使い続けられる(ただし自動更新をオフにする必要がある)。
個人的にはSeaMonkeyも好きだが、Firefoxを使いたい人はESR版も検討してみてはどうだろうか。
追記終わり。
Puppy Linuxに限った話ではない。
Firefox のバージョン52から音声ライブラリのALSAがサポートされなくなった。
そのため、ALSAしか入っていないLinuxディストリビューションはPulseAudioをインストールしないと音が出ない。
自分でコンパイルできる人は
--disable-pulseaudio --enable-alsa
を付け加えてコンパイルするとALSAを使うことができるらしい。
しかし、一般的では無いのでPulseAudioをインストールするのが正攻法である。
PuppyのパッケージマネージャでPulseAudioをインストールしてもいけるような気がしたが、確認してみたら何かのために入れたのだったか、すでにインストールされていた。
しかし、音声が出ず、FirefoxでPulseAudioをインストールするよう促す警告が出ていた。
改めて調べてみると以下のスレッドが見つかった。
Puppy Linux Discussion Forum :: View topic - Firefox52/Pulseaudio/No Sound (Solved)
Tahrの場合は、上のスレッドにある
pulseaudio-4.0-tahr606-i386.pet - Google ドライブ
から、pulseaudio-4.0-tahr606-i386.petをダウンロードしてインストールする。
もちろんこれは32bit版での話である。
Slackoなどでは以下のスレッドから
Puppy Linux Discussion Forum :: View topic - FireFox requires PulseAudio for sound; how to install?
http://smokey01.com/OscarTalks/pulseaudio-2.1-i486-w5.pet
その他、Lucid用
http://smokey01.com/OscarTalks/pulseaudio-2.1-lucid.pet
Wheezy用
http://smokey01.com/OscarTalks/pulseaudio-2.1-wheezy.pet
をダウンロードすると良いらしい。
どちらの場合も
手動でデーモンを起動しないといけないらしい。
本当は他のほうが良いのかも知れないが、xinitrcに
pulseaudio --start
を書き加えて起動時に自動的にデーモンが開始されるようにした。
とりあえずこれで音は聞こえる。
Lubuntuでも標準ではALSAしか入っていないので、PulseAudioをインストールする必要がある。
追記
以下のリンクにAPulseというソフトを使う方法が書かれている。
ここにあるpetファイルをインストールして、コンソールで
apulse firefox
などとすると音声が再生できる状態でFirefoxを起動できる。
デスクトップにあるショートカットで右クリックをしてメニューから「ファイル 'ブラウザ'」->「テキストとして開く」を実行して/usr/local/bin/defaultbrowserをテキストエディタで開く。
#!/bin/sh
exec firefox "$@"
となっているのを
#!/bin/sh
exec apulse firefox "$@"
にすると、ショートカットをクリックするだけで音声が出力できる状態でFirefoxが起動する。
本当はスタートメニューにあるFirefoxの項目でも同様にしなくはいけないが普段はそちらを使わないのでそれは変更しなかった。
TahrPup標準ブラウザであるPaleMoonの場合はALSAがそのまま使えるようである。
ただし、PaleMoonではAbemaTVのサイトが真っ白になって見られないことがある。
またChromeやChromiumもALSAで音声が出力される。
こだわりがない人はブラウザの乗り換えを考えるのが一番簡単だろう。
2017/06/18 追記
Firefox 54からはAPulseを使う方法は使えなくなったようだ。
そしてパッケージマネージャーで確認したらすでにPulseAudio関係のファイルがインストールされていたと書いたがやはりそのとおりのようだ。
問題はコマンドが存在しないことらしい。
パッケージマネージャでpulseaudio-utils?(?はバージョン番号)とpulseaudio-module-x11?(?はバージョン番号)をインストールしてみた。
そうしたところpulseaudio --startというコマンドが打てるようになった。
上では.xinitrcに書いていたが、Puppyには「メニュー」の「システム」に「Boot Manager」がある。
「スタートアップアプリの管理」を選択する。
「追加」タブを選ぶ。
左のテキスト入力欄に「pulseaudio」と入力し、右側の入力欄の「Optional」を消して、代わりに「--start」と入れる。
そして、右側のボタンを押すとスタートアップアプリが新しく作られる。
この方法を使うのが正攻法だ。
さらに追記
どうやら問題はPulseaudioがすでにインストールされているにも関わらずpulseaudioコマンドがないことが原因のようだ。
以下からUbuntuのPulseaudioのパッケージを直接ダウンロードしてインストールする方法がある。
Ubuntu – Details of package pulseaudio in trusty
Download pulseaudio以下からダウンロード。
インストールしたら、上に書いた方法でスタートアップ時に実行されるようにする。
と思ったのだがどうもroot権限で実行できないらしい。
W: [pulseaudio] main.c: This program is not intended to be run as root (unless --system is specified).
E: [pulseaudio] main.c: Daemon startup failed.
と出てしまう。
XenialPup64ではうまく動いていたのだが、Tahrpup64ではダメみたいだ。
XenialPup64ではWつまり警告は出るものの実行はできる。
どうやら16.04のPulseAudioはバージョンが8.0で14.04のものは4.0なのだが、その辺の違いがありそうだ。
ということで、TahrPupの場合、Ubuntuリポジトリからパッケージをインストールしてはいけない。
その後、8.0をコンパイルしたりしてみたが、どうやらバージョンのせいではないらしい。
Puppy Package Managerでリポジトリを更新するとPulseAudioのマイナーバージョンが異なっており、アップデートできるようになるようだ。
そのときに依存するパッケージが一緒にインストールされ、上のようなエラーが出なくなる。
Rootで動作するPuppyでは本来使わないものがかなり入ってしまうが、PulseAudioを使う場合、仕方ないかもしれない。
嫌であれば、上に書いたpetパッケージをインストールしよう。
リポジトリを更新するには
パッケージマネージャーの画面の「アンインストール」と書かれているボタンの左側のスパナとドライバが書かれたアイコンのボタンを押して、設定画面を開く。
そのパッケージマネージャー設定画面の「データベース更新」タブを選択して、「アップデート」と書かれたボタンを押す。
そうするとリポジトリが更新され、パッケージ内容が新しくなる。
その後、「pulseaudio」で検索し、TahrPupの場合、「pulseaudio_4.0」を選択してインストールすればアップデートされる。
なお、Puppy Linux日本語フォーラムの情報によれば、リポジトリをアップデートするとFirefoxのバージョンも54.0がインストールできるようになり、こちらはALSAが使えるようになっているのでPulseAudioのインストールは必要ないそうである。
面倒なことにならないように予めインストールしてあるFirefoxをアンインストールしてから改めてインストールする必要があるが、PulseAudioをインストールするのが面倒な人はこちらを選択すると良いだろう。
しかし、うちの環境ではQuickpet(簡易パッケージマネージャー)からインストールし、アップデート機能で54.0にしたFirefoxよりも動画再生が不安定だった。
どちらを選ぶか悩ましいところである。
追記
バージョン55をCanonicalで手を加えたバージョンアップした55.0.1では、PulseAudioがないと音が再生できなくなっていた。
残念。
2017/10/24 追記
55以降でもapulseを使えるようにする方法がわかりました。
sandbox blocks open in firefox 54 · Issue #54 · i-rinat/apulse · GitHub
about:configとアドレスバーに入力してFirefoxの細かい設定ができる画面を開きます。
そこで
security.sandbox.content.write_path_whitelist
を探します。
見つかったらその値に
/dev/snd/controlC0,/dev/snd/pcmC0D0p
を追加します。
この値はPC環境によって異なる可能性があります。
うちの環境ではそのままではうまくいかなかったので
/dev/snd/controlC1,/dev/snd/pcmC1Dop,/dev/snd/pcmC0D0c
をさらに追加した結果、音声が出力されるようになりました。
しかし、ちょっとまだ問題がありました。
AbemaTVでは音声が再生されないのです。
Flashの動画プレーヤーが有効になれば、音声は問題なく出力できます。
しかし、HTML5のTHEOplayerでは音声が再生されず、そのせいで動画も途切れ途切れになります。
とすると、THEOplayerが原因である可能性が高いのでは?と思います。
コーデックの可能性もありますが・・・。
以前はFlashの方が古いマシンでも画面が小さければスムーズに再生され、THEOplayerではカクカクになったり、何度も同じ箇所が再生されるような状況でした。
しかし、現在の正式版のバージョン56ではPulseAudioを入れておけば、THEOplayerの方が綺麗に再生されます。
素直にPulseAudioを使ったほうが良さそうです。