mieki256's diary



2017/11/14(火) [n年前の日記]

#1 [raspberrypi][lua][love2d] Raspberry Pi Zero W + love2dで音が鳴らせなくてハマっていたり

Raspberry Pi Zero W + love2d で音が鳴らせなくてハマっていたり。環境は、raspbian stretch。

公式リポジトリ版の SDL2 + love2d なら音が鳴るのかなと疑問が湧いたので試してみたのだけど、公式リポジトリ版も音は鳴らなかった。トホホ。

自分でSDL2をビルドする際に、--disable-pulseaudio をつけないでビルドしたら、pulseaudio が無効にならずに音が鳴ってくれるのでは、と期待して外してビルドしてみたけどこれまた変化なし。love2dのビルドまで含めて5時間ぐらいかかったのに…。トホホ。

公式リポジトリ版ですら音が鳴らないということは、どうも raspbian stretch上では love2d も SDL2 も音が鳴らない状態のまま放置されているのでは、という不安がムクムクと。色々ググってみても、どの情報も raspbian stretch の前の版、raspbian jesiie での話ばかりなわけで。

公式リポジトリ版のSDL2とlove2dのインストール方法。 :

まずは自分でビルドした版をアンインストール。SDL2 や love2d をビルドしたディレクトリに入って。
sudo make uninstall

全部終わったら、公式版をインストール。
sudo aptitude install libsdl2-2.0-0 libsdl2-dev libsdl2-gfx-1.0-0 libsdl2-gfx-dev libsdl2-image-2.0-0 libsdl2-image-dev libsdl2-mixer-2.0-0 libsdl2-mixer-dev libsdl2-net-2.0-0 libsdl2-net-dev libsdl2-ttf-2.0-0 libsdl2-ttf-dev
sudo aptitude install love

公式版はOpenGLを使うことが前提のバイナリになってるので、Raspberry Pi Zero W上で GL driver を有効にして、OpenGLを使えるようにする。公式には、Pi Zero系でGL driverはサポートされてないし、使おうとすると動作が不安定になるけれど、有効にできないわけでもない。
sudo raspi-config

Advanced Oprions -> GL Driver。以下の3つが出てくるので、G1 か G2 を選ぶ。今回、G1を選んだら、aplay hoge.wav ですら音が出なくなったので、G2を選んだ。
G1 GL (Full KMS) OpenGL desktop driver with full KMS
G2 GL (Fake KMS) OpenGL desktop driver with fake KMS
G3 Legacy        Original non-GL desktop driver
「 The xxxx KMS GL driver is enabled.」と表示される。

Finish を選ぶと「Reboot(再起動)するか?」と尋ねてくるけど「いいえ」を選んで、/boot/config.txt を編集。
sudo vi /boot/config.txt

以下のように、cma-128 を追加する。
dtoverlay=vc4-fkms-v3d
↓
dtoverlay=vc4-fkms-v3d,cma-128
dtoverlay=vc4-kms-v3d
↓
dtoverlay=vc4-kms-v3d,cma-128

sudo reboot で再起動。OpenGL が有効になった状態で起動してるか動作確認。
glxgears
ギアが表示されて、正常な色と、それなりのフレームレートで動いてくれたら、上手く行ってる。

音が鳴るか確認。
aplay hoge.wav
鳴らないなら、以下を参考にして設定を見直す。

_R-Pi Troubleshooting - eLinux.org
_とりあえずこれだけ知っておけばなんとかなるRaspberry Piのオーディオ設定 - mattintosh note

で。既に書いたけど、この状態でも love2dで音は鳴らなかった。残念。

retropie-setupを利用しようとしたけれど。 :

_RetroPie/RetroPie-Setup

$ git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
$ cd RetroPie-Setup
$ sudo ./retropie_setup.sh sdl2

Sorry - Raspbian/Debian Stretch (and newer) is not yet supported on the RPI

Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.1 (stretch)
Release:        9.1
Codename:       stretch
raspbian stretch は対応してねえよと言われてしまった…。

以上です。

過去ログ表示

Prev - 2017/11 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project