2017/11/20(月) [n年前の日記]
#2 [raspberrypi][love2d] Raspberry Pi Zero W + raspbian jessie でlove2dを使えるようにする手順をメモ
前にもメモした記憶があるけど、今回 raspbian jessie をクリーンインストールしたので、再度メモ。
◎ SDL2(OpenGL無効版)をビルドしてインストール。 :
SDL2は、画像の描画や音声ファイルの再生等をしてくれるライブラリ、という説明でいいのかな…。
公式リポジトリにある、OpenGLが有効になったSDL2をインストールしたい場合は、以下だけで済む。
が、今回は OpenGL無効(にすることで OpenGL ESが有効になる)版をインストールしたいのでビルドする。以下を参考に作業。
_Golang と SDL2 でゲームを作る - KaoriYa
_SDL2-2.0.6 on Raspberry Pi - ChoccyHobNob
ビルドに必要なパッケージをインストール。
ソースをDLして解凍して configure。
結果は以下。Raspberry Pi1 / Zero系の場合、--host=arm-raspberry-linux-gnueabihf をつけて configure しないと、Video driver に rpi が出てこないので、指定は必須。
--host=arm-raspberry-linux-gnueabihf をつけない場合は以下になる。video driver に rpi が無い。
makeしてインストール。1〜2時間ぐらいかかる。
公式リポジトリにある、OpenGLが有効になったSDL2をインストールしたい場合は、以下だけで済む。
sudo aptitude install libsdl2-dev
が、今回は OpenGL無効(にすることで OpenGL ESが有効になる)版をインストールしたいのでビルドする。以下を参考に作業。
_Golang と SDL2 でゲームを作る - KaoriYa
_SDL2-2.0.6 on Raspberry Pi - ChoccyHobNob
ビルドに必要なパッケージをインストール。
sudo aptitude install automake build-essential mercurial qt5-default libtool libasound2-dev libaudio-dev libesd0-dev libsndfile1-dev libmodplug-dev libopenal-dev libfontconfig1-dev libpango1.0-dev freeglut3-dev libfreeimage-dev libjpeg-dev libtiff5-dev libwebp-dev libxcursor-dev libxi-dev libxrandr-dev libxss-dev libudev-dev libsmpeg-dev libxinerama-dev
ソースをDLして解凍して configure。
mkdir ~/sdl2 cd ~/sdl2 wget https://www.libsdl.org/release/SDL2-2.0.5.tar.gz tar xzf SDL2-2.0.5.tar.gz cd SDL2-2.0.5 mkdir build && cd build ../configure --host=arm-raspberry-linux-gnueabihf --disable-pulseaudio --disable-esd --disable-video-mir --disable-video-wayland --disable-video-x11 --disable-video-opengl
結果は以下。Raspberry Pi1 / Zero系の場合、--host=arm-raspberry-linux-gnueabihf をつけて configure しないと、Video driver に rpi が出てこないので、指定は必須。
SDL2 Configure Summary: Building Shared Libraries Building Static Libraries Enabled modules : atomic audio video render events joystick haptic power filesystem threads timers file loadso cpuinfo assembly Assembly Math : Audio drivers : disk dummy oss alsa(dynamic) nas(dynamic) Video drivers : rpi dummy opengl_es1 opengl_es2 Input drivers : linuxev linuxkd Using libudev : YES Using dbus : YES Using ime : YES Using ibus : NO Using fcitx : NO
--host=arm-raspberry-linux-gnueabihf をつけない場合は以下になる。video driver に rpi が無い。
../configure --disable-pulseaudio --disable-esd --disable-video-mir --disable-video-wayland --disable-video-x11 --disable-video-opengl SDL2 Configure Summary: Building Shared Libraries Building Static Libraries Enabled modules : atomic audio video render events joystick haptic power filesystem threads timers file loadso cpuinfo assembly Assembly Math : Audio drivers : disk dummy oss alsa(dynamic) nas(dynamic) Video drivers : dummy opengl_es2 Input drivers : linuxev linuxkd Using libudev : YES Using dbus : YES Using ime : YES Using ibus : NO Using fcitx : NO
makeしてインストール。1〜2時間ぐらいかかる。
make sudo make install共有ライブラリを一応更新。
sudo ldconfig
$ sudo ldconfig -p | grep SDL2 libSDL2-2.0.so.0 (libc6,hard-float) => /usr/local/lib/libSDL2-2.0.so.0/usr/local/lib/ 以下にインストールされた。
◎ love2dをビルドしてインストール。 :
以下を参考にして作業。
_Building LOVE (日本語) - LOVE
_pilove/build-love2d.sh at master - skarbat/pilove
必要なパッケージをインストール。
ちなみに、raspbian jessie ではなく raspbian stretch の場合は、libturbojpeg1-dev ではなく libturbojpeg0-dev をインストールするっぽい?
love2dのLinux用のソースをDLして解凍して configure してビルドしてインストール。1時間半かかった。
_Building LOVE (日本語) - LOVE
_pilove/build-love2d.sh at master - skarbat/pilove
必要なパッケージをインストール。
sudo aptitude install build-essential pkg-config libfreetype6-dev libopenal-dev libvorbis-dev libtheora-dev libmpg123-dev libluajit-5.1-dev libphysfs-dev libmodplug-dev sudo aptitude install autotools-dev automake libtool libdevil-dev libogg-dev libflac-dev libflac++-dev libmng-dev sudo aptitude install libturbojpeg1-dev sudo aptitude install build-essential pkg-config libfreetype6-dev libopenal-dev libvorbis-dev libtheora-dev libmpg123-dev libluajit-5.1-dev libphysfs-dev libmodplug-dev sudo aptitude install devscripts git-core debhelper dh-autoreconf libasound2-dev libudev0 libudev-dev libdbus-1-dev libx11-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxrandr-dev libxss-dev libxt-dev libxxf86vm-dev libgl1-mesa-dev libibus-1.0-dev libraspberrypi-dev
ちなみに、raspbian jessie ではなく raspbian stretch の場合は、libturbojpeg1-dev ではなく libturbojpeg0-dev をインストールするっぽい?
sudo aptitude install libturbojpeg0-dev
love2dのLinux用のソースをDLして解凍して configure してビルドしてインストール。1時間半かかった。
mkdir ~/love2d cd ~/love2d wget https://bitbucket.org/rude/love/downloads/love-0.10.2-linux-src.tar.gz tar zxf love-0.10.2-linux-src.tar.gz cd love-0.10.2 ./configure --host=arm-raspberry-linux-gnueabihf make sudo make install
$ which love /usr/bin/love/usr/bin/以下に、love がインストールされた。
◎ 動作確認。 :
love で実行。例の画面が出た。
love2dに、サウンドを鳴らすソースを与えてみた。以下のような警告が表示されたものの、音が鳴った。
音が鳴らない場合は、pulseaudio --start をしてから pulseaudio --kill をしてから試すと音が鳴ったりした。
love2dに、サウンドを鳴らすソースを与えてみた。以下のような警告が表示されたものの、音が鳴った。
AL lib: (WW) alc_initconfig: Failed to initialize backend "pulse"
音が鳴らない場合は、pulseaudio --start をしてから pulseaudio --kill をしてから試すと音が鳴ったりした。
◎ 各パッケージのインストール時にリストアップされたパッケージをメモ。 :
一応、各パッケージのインストール時にリストアップされたパッケージもメモ。環境は、Raspberry Pi Zero W + raspbian jessie。
$ sudo aptitude install automake build-essential mercurial qt5-default libtool libasound2-dev libaudio-dev libesd0-dev libsndfile1-dev libmodplug-dev libopenal-dev libfontconfig1-dev libpango1.0-dev freeglut3-dev libfreeimage-dev libjpeg-dev libtiff5-dev libwebp-dev libxcursor-dev libxi-dev libxrandr-dev libxss-dev libudev-dev libsmpeg-dev libxinerama-dev 以下の新規パッケージがインストールされます: autoconf{a} automake autopoint{a} autotools-dev{a} debhelper{a} dh-autoreconf{a} dh-strip-nondeterminism{a} freeglut3{a} freeglut3-dev gettext{a} intltool-debian{a} libarchive-zip-perl{a} libasound2-dev libasprintf-dev{a} libaudio-dev libaudiofile-dev{a} libavahi-client-dev{a} libavahi-common-dev{a} libcaca-dev{a} libcairo-script-interpreter2{a} libcairo2-dev{a} libdbus-1-dev{a} libdirectfb-dev{a} libdirectfb-extra{a} libdrm-dev{a} libdrm-exynos1{a} libdrm-omap1{a} libdrm-tegra0{a} libegl1-mesa-dev{a} libesd0-dev libfile-stripnondeterminism-perl{a} libflac-dev{a} libfontconfig1-dev libfreeimage-dev libfreeimage3{a} libgettextpo-dev{a} libgettextpo0{a} libgl1-mesa-dev{a} libgles2-mesa-dev{a} libglib2.0-dev{a} libglu1-mesa-dev{a} libharfbuzz-dev{a} libharfbuzz-gobject0{a} libice-dev{a} libjbig-dev{a} libjpeg-dev libjpeg62-turbo-dev{a} libjs-excanvas{a} libltdl-dev{a} liblzma-dev{a} libmail-sendmail-perl{a} libmodplug-dev libogg-dev{a} libopenal-dev libpango1.0-dev libpcre3-dev{a} libpcrecpp0{a} libpixman-1-dev{a} libpthread-stubs0-dev{a} libpulse-dev{a} libpulse-mainloop-glib0{a} libqt5opengl5-dev{a} libqt5sql5{a} libqt5sql5-sqlite{a} libqt5test5{a} libqt5xml5{a} libsdl1.2-dev{a} libslang2-dev{a} libsm-dev{a} libsmpeg-dev libsmpeg0{a} libsndfile1-dev libsys-hostname-long-perl{a} libtiff5-dev libtiffxx5{a} libtool libudev-dev libunistring0{a} libvorbis-dev{a} libwayland-bin{a} libwayland-dev{a} libwebp-dev libx11-dev{a} libx11-doc{a} libx11-xcb-dev{a} libxau-dev{a} libxcb-dri2-0-dev{a} libxcb-dri3-dev{a} libxcb-glx0-dev{a} libxcb-present-dev{a} libxcb-randr0-dev{a} libxcb-render0-dev{a} libxcb-shape0-dev{a} libxcb-shm0-dev{a} libxcb-sync-dev{a} libxcb-xfixes0-dev{a} libxcb1-dev{a} libxcursor-dev libxdamage-dev{a} libxdmcp-dev{a} libxext-dev{a} libxfixes-dev{a} libxft-dev{a} libxi-dev libxinerama-dev libxrandr-dev libxrender-dev{a} libxshmfence-dev{a} libxss-dev libxt-dev{a} libxxf86vm-dev{a} m4{a} mercurial mercurial-common{a} mesa-common-dev{a} po-debconf{a} qt5-default qt5-qmake{a} qtbase5-dev{a} qtbase5-dev-tools{a} x11proto-core-dev{a} x11proto-damage-dev{a} x11proto-dri2-dev{a} x11proto-fixes-dev{a} x11proto-gl-dev{a} x11proto-input-dev{a} x11proto-kb-dev{a} x11proto-randr-dev{a} x11proto-render-dev{a} x11proto-scrnsaver-dev{a} x11proto-xext-dev{a} x11proto-xf86vidmode-dev{a} x11proto-xinerama-dev{a} xorg-sgml-doctools{a} xtrans-dev{a} 更新: 0 個、新規インストール: 135 個、削除: 0 個、保留: 0 個。
$ sudo aptitude install build-essential pkg-config libfreetype6-dev libopenal-dev libvorbis-dev libtheora-dev libmpg123-dev libluajit-5.1-dev libphysfs-dev libmodplug-dev 以下の新規パッケージがインストールされます: libluajit-5.1-2{a} libluajit-5.1-dev libmpg123-dev libphysfs-dev libphysfs1{a} libtheora-dev
$ sudo aptitude install autotools-dev automake libtool libdevil-dev libogg-dev libflac-dev libflac++-dev libmng-dev 以下の新規パッケージがインストールされます: liballegro4.4{a} libdevil-dev libdevil1c2{a} libflac++-dev libflac++6{a} liblcms2-dev{a} libmng-dev
$ sudo aptitude install libturbojpeg1-dev 以下の新規パッケージがインストールされます: libturbojpeg1{a} libturbojpeg1-dev
$ sudo aptitude install devscripts git-core debhelper dh-autoreconf libasound2-dev libudev0 libudev-dev libdbus-1-dev libx11-dev libxcursor-dev libxext-dev libxi-dev libxinerama-dev libxrandr-dev libxss-dev libxt-dev libxxf86vm-dev libgl1-mesa-dev libibus-1.0-dev libraspberrypi-dev 以下の新規パッケージがインストールされます: at{a} bsd-mailx{a} dctrl-tools{a} debian-keyring{a} devscripts diffstat{a} distro-info-data{a} dput{a} equivs{a} exim4-base{a} exim4-config{a} exim4-daemon-light{a} gir1.2-ibus-1.0{a} git-core hardening-includes{a} libapt-pkg-perl{a} libclass-accessor-perl{a} libclass-inspector-perl{a} libclone-perl{a} libcommon-sense-perl{a} libconvert-binhex-perl{a} libcrypt-ssleay-perl{a} libdigest-hmac-perl{a} libdistro-info-perl{a} libemail-valid-perl{a} libexporter-lite-perl{a} libfile-basedir-perl{a} libibus-1.0-5{a} libibus-1.0-dev libio-pty-perl{a} libio-sessiondata-perl{a} libio-socket-inet6-perl{a} libio-string-perl{a} libio-stringy-perl{a} libipc-run-perl{a} libjson-perl{a} libjson-xs-perl{a} libmime-tools-perl{a} libnet-dns-perl{a} libnet-domain-tld-perl{a} libnet-ip-perl{a} libossp-uuid-perl{a} libossp-uuid16{a} libparse-debcontrol-perl{a} libparse-debianchangelog-perl{a} libperlio-gzip-perl{a} libsoap-lite-perl{a} libsocket6-perl{a} libsub-name-perl{a} libtask-weaken-perl{a} libtext-levenshtein-perl{a} libtie-ixhash-perl{a} libxml-parser-perl{a} libxmlrpc-lite-perl{a} lintian{a} patchutils{a} python3-magic{a} t1utils{a} wdiff{a}
◎ pulseaudioについてメモ。 :
pulseaudio関係をインストールしたい場合は、以下も打つけど…。
raspbian jessie をクリーンインストールした直後は以下のような状態で既にアレコレ入ってたので、わざわざインストールを指定しなくてもよいのではないかな…。
sudo aptitude install pulseaudio libpulse-dev
raspbian jessie をクリーンインストールした直後は以下のような状態で既にアレコレ入ってたので、わざわざインストールを指定しなくてもよいのではないかな…。
$ sudo aptitude search pulse | grep -E '^i' i A libpulse-dev - PulseAudio client development headers and i A libpulse-mainloop-glib0 - PulseAudio client libraries (glib support) i A libpulse0 - PulseAudio client libraries i A libpulsedsp - PulseAudio OSS pre-load library i A pulseaudio - PulseAudio sound server i pulseaudio-module-bluetooth - Bluetooth module for PulseAudio sound serv i A pulseaudio-module-x11 - X11 module for PulseAudio sound server i A pulseaudio-utils - Command line tools for the PulseAudio soun
[ ツッコむ ]
以上です。