2017/08/28(月) [n年前の日記]
#1 [raspberrypi][ruby][gosu] Raspberry Pi3上にgosuをインストールしてみた
Raspberry Pi3上に、gosuをインストールしてみた。gosuってのは、Rubyを使って2Dゲームを制作できるライブラリ。
sudo raspi-config で、OpenGLドライバ(Fake KMS版)を有効、かつ、Memory Split でGPUに256MBを渡した状態に設定してから、動作確認。
BG x 2枚 + スプライト512枚を描画してみたら40FPSしか出なかったけど、スプライトを160枚に減らしてみたら60FPSで動いてくれた。これならどうにかメガドラ相当のゲーム画面も作れそう。しかも OpenGLを使えば背景だけでも3DCGにできたりするから、セガサターンっぽいゲーム画面だって不可能ではない、かもしれない。
Python + cocos2d がスプライト80枚を描画するだけでも40FPS前後しか出なかったことを考えると、速度面では Ruby + gosu のほうが優秀というか、まだ使い物になりそうな雰囲気。
もっとも、Raspberry Piシリーズは、Pi1、Pi2、Pi3、Zero、それぞれCPU性能が違うわけで…。Raspberry Pi3上なら使い物になりそうでも、Zeroあたりで動かしたら話にならない可能性も。各環境で試してみないと分からんところがあるなと。
sudo raspi-config で、OpenGLドライバ(Fake KMS版)を有効、かつ、Memory Split でGPUに256MBを渡した状態に設定してから、動作確認。
BG x 2枚 + スプライト512枚を描画してみたら40FPSしか出なかったけど、スプライトを160枚に減らしてみたら60FPSで動いてくれた。これならどうにかメガドラ相当のゲーム画面も作れそう。しかも OpenGLを使えば背景だけでも3DCGにできたりするから、セガサターンっぽいゲーム画面だって不可能ではない、かもしれない。
Python + cocos2d がスプライト80枚を描画するだけでも40FPS前後しか出なかったことを考えると、速度面では Ruby + gosu のほうが優秀というか、まだ使い物になりそうな雰囲気。
もっとも、Raspberry Piシリーズは、Pi1、Pi2、Pi3、Zero、それぞれCPU性能が違うわけで…。Raspberry Pi3上なら使い物になりそうでも、Zeroあたりで動かしたら話にならない可能性も。各環境で試してみないと分からんところがあるなと。
◎ gosuのインストール。 :
一応、gosu の wiki に、Raspberry Pi用のインストール方法が書いてあるのだけど。
_Getting Started on Raspbian (Raspberry Pi) - gosu/gosu Wiki
記事の冒頭に、
「ここに書いてあるのは Pi1 用のやり方だよ」
「Pi2 や Pi3 は、 _OpenGLを有効にした状態 で、Ubuntu/Debian Linuxと同じやり方でインストールしてくれ」
「gosuの現行版は動かんので、sudo gem install gosu --pre で最新版をインストールしてみて」
…と書いてある。ので、Linux版の記事のほうを参考にしつつ作業。
_Getting Started on Linux - gosu/gosu Wiki
gem でインストールすると、Rubyから呼び出せるバイナリを作るために、コンパイルだかビルドだかが走る。結構時間がかかるので、気長に待つ。体感で10分以上かかったような…。
gosu以外にも、chipmunk、opengl、rmagick もあったほうがいいらしいので、それもインストール。これもビルドされるので、やっぱり気長に待つ。
gosu-examples をインストールすると、gosuのサンプルを動かせる。
_Ruby - Gosu
もしかしたら、音を鳴らすために pulseaudio とやらも必要なのだろうか…。自分の環境では既に入ってたけど…。
また、ひょっとすると、freeglut3 関係も必要だったりするのかな。要らないのかな。どうなんだろう。
_Getting Started on Raspbian (Raspberry Pi) - gosu/gosu Wiki
記事の冒頭に、
「ここに書いてあるのは Pi1 用のやり方だよ」
「Pi2 や Pi3 は、 _OpenGLを有効にした状態 で、Ubuntu/Debian Linuxと同じやり方でインストールしてくれ」
「gosuの現行版は動かんので、sudo gem install gosu --pre で最新版をインストールしてみて」
…と書いてある。ので、Linux版の記事のほうを参考にしつつ作業。
_Getting Started on Linux - gosu/gosu Wiki
sudo apt update sudo apt upgrade sudo apt install build-essential sudo apt install libsdl2-dev libsdl2-ttf-dev libpango1.0-dev libgl1-mesa-dev sudo apt install libopenal-dev libsndfile-dev libmpg123-dev sudo apt install ruby-dev sudo gem install gosu --preRubyのモジュールは gem を使うとネットワーク経由でインストールできる。--pre は、現行版(安定版?)じゃなくて最新版(開発版?)をインストールせよ、という指定らしい。
gem でインストールすると、Rubyから呼び出せるバイナリを作るために、コンパイルだかビルドだかが走る。結構時間がかかるので、気長に待つ。体感で10分以上かかったような…。
gosu以外にも、chipmunk、opengl、rmagick もあったほうがいいらしいので、それもインストール。これもビルドされるので、やっぱり気長に待つ。
sudo gem install chipmunk sudo gem install opengl sudo gem install glu sudo gem install glut sudo apt install ruby-rmagick sudo apt install libmagickcore-dev libmagickwand-dev sudo gem install rmagick_How to install the RMagick gem on a Raspberry Pi :: Andrew Havens, Ruby Developer
gosu-examples をインストールすると、gosuのサンプルを動かせる。
_Ruby - Gosu
sudo gem install gosu-examples gosu-examplesgosu-examples と打って実行。右側のスクリプト名?をマウスでクリックするとサンプルを切り替えられる。chipmunk、opengl、rmagick もインストールしてあると、選べるスクリプトが増える模様。
もしかしたら、音を鳴らすために pulseaudio とやらも必要なのだろうか…。自分の環境では既に入ってたけど…。
sudo apt install pulseaudio_OF 0.9.0 Rasberry Pi B+ sound problem - bugs, errors - openFrameworks
また、ひょっとすると、freeglut3 関係も必要だったりするのかな。要らないのかな。どうなんだろう。
sudo apt install freeglut3 freeglut3-dev_OpenGL (GLUT) で正方形が動くだけのアニメーション - Qiita
◎ 問題点。 :
Ruby + gosu を使うスクリプトを実行すると、相変わらずエラーメッセージが表示される…。
_Bug #1656930 " OpenGL applications warns “MESA-LOADER: failed to...” : Bugs : Raspbian
_98629 - OpenGL applications warns "MESA-LOADER: failed to retrieve device information"
また、サウンド関係を使うと、これまた警告が。
_OpenAL warning on Ubuntu - Issue #292 - gosu/gosu
libGL error MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information_Raspberry Pi 2/3 Model B(Raspbian Jessie with PIXEL)でRStudioを使う
_Bug #1656930 " OpenGL applications warns “MESA-LOADER: failed to...” : Bugs : Raspbian
_98629 - OpenGL applications warns "MESA-LOADER: failed to retrieve device information"
また、サウンド関係を使うと、これまた警告が。
_OpenAL warning on Ubuntu - Issue #292 - gosu/gosu
[ ツッコむ ]
#2 [raspberrypi] Raspberry Pi3のOSをアップグレードしてみた
今まで、Raspberry Pi3に raspbian jessie(Debian 8) をインストールしていたけど。なんでも最近、raspbian stretch (Debian 9)という新しい版が公開されたらしいので、試しにアップグレードしてみたり。
本当はクリーンインストールがいいらしいけど…。面倒臭いので、試しにそのままアップグレード。以下を参考に作業してみたり。
_[メモ] (らずぱい) Raspbian: Jessie から Stretchへアップグレード - Qiita
パッケージレポジトリを jessie から stretch へ変更。
何が更新されそうか確認。
実際に更新。
更新できたか少し確認。
本当はクリーンインストールがいいらしいけど…。面倒臭いので、試しにそのままアップグレード。以下を参考に作業してみたり。
_[メモ] (らずぱい) Raspbian: Jessie から Stretchへアップグレード - Qiita
パッケージレポジトリを jessie から stretch へ変更。
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list.d/raspi.list sudo apt update
何が更新されそうか確認。
sudo apt --simulate upgrade
実際に更新。
sudo apt upgrade sudo apt dist-upgrade sudo reboot
更新できたか少し確認。
$ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 9.1 (stretch) Release: 9.1 Codename: stretch一見すると更新できたっぽい。
◎ 書き換えられた設定ファイルについて。 :
気が付いた範囲では、以下のファイルが書き換えられた。
/etc/sysctl.conf /etc/dhcpcd.conf /etc/ntp.conf /etc/lightdm/lightdm-gtk-greeter.conf /etc/lightdm/lightdm.confまあ、どれも、自分の環境では修正したファイルなのでアレだけど。
◎ 自動ログインするユーザを変更。 :
デフォルトではpiユーザで自動ログインするようになってた。別のユーザで自動ログインするように変更。
_Debian Jessie Wheezy 自動ログイン lightdm系 Linux. リナックス. ヒト ノ タメ ノ.
_Debian Jessie Wheezy 自動ログイン lightdm系 Linux. リナックス. ヒト ノ タメ ノ.
sudo vi /etc/lightdm/lightdm.conf autologin-user=pi を変更。
◎ chromiumをインストール。 :
デフォルトブラウザが、Epiphany から chromium になったらしい。インストールしておく。
sudo apt install chromium-browser
◎ OpenGLで問題発生。 :
アップグレード後、sudo raspi-config でOpenGLドライバを有効にしてみても、設定が反映されないことに気づいた。glxgears を実行すると激しく点滅するギアが表示されてしまう…。
やっぱりクリーンインストールしないとダメなのかな。知識がある人ならどこが怪しいのか調べて修正できるのだろうけど。…面倒臭い。クリーンインストールしてしまおう。
ということで、 _Raspberry Pi Downloads - Software for the Raspberry Pi から NOOBS をDLしようとしているのだけど、なんだか接続がブチブチ切れる…。18時間ぐらいかかる、と予想時間が出てる…。
要は NOOBS_v2_4_3.zip をDLできればいいのだよな。ミラーサーバは無いのかね。
_Raspbianのインストールと初期設定 | 純規の暇人趣味ブログ や _raspbian日本のミラーサイト - Qiita で紹介されてた。 _http://ftp.jaist.ac.jp/pub/raspberrypi/NOOBS/ がソレっぽい。ここからDLさせてもらおう…。
_SDメモリカードフォーマッター - SD Association を入手して、Windows10 x64上にインストール。
Raspberry Pi3 から microSD を抜いて、Windows10 x64 に。SDメモリカードフォーマッターで、microSDをフォーマット。NOOBS 2.4.3 を解凍して、中に入ってるファイルとフォルダを microSD にコピー。Raspberry Pi3 に差し直し。
Raspberry Pi3 に、HDMI接続ディスプレイとUSBキーボードやマウスを繋いで、電源投入。raspbian をインストール。
やっぱりクリーンインストールしないとダメなのかな。知識がある人ならどこが怪しいのか調べて修正できるのだろうけど。…面倒臭い。クリーンインストールしてしまおう。
ということで、 _Raspberry Pi Downloads - Software for the Raspberry Pi から NOOBS をDLしようとしているのだけど、なんだか接続がブチブチ切れる…。18時間ぐらいかかる、と予想時間が出てる…。
要は NOOBS_v2_4_3.zip をDLできればいいのだよな。ミラーサーバは無いのかね。
_Raspbianのインストールと初期設定 | 純規の暇人趣味ブログ や _raspbian日本のミラーサイト - Qiita で紹介されてた。 _http://ftp.jaist.ac.jp/pub/raspberrypi/NOOBS/ がソレっぽい。ここからDLさせてもらおう…。
_SDメモリカードフォーマッター - SD Association を入手して、Windows10 x64上にインストール。
Raspberry Pi3 から microSD を抜いて、Windows10 x64 に。SDメモリカードフォーマッターで、microSDをフォーマット。NOOBS 2.4.3 を解凍して、中に入ってるファイルとフォルダを microSD にコピー。Raspberry Pi3 に差し直し。
Raspberry Pi3 に、HDMI接続ディスプレイとUSBキーボードやマウスを繋いで、電源投入。raspbian をインストール。
[ ツッコむ ]
以上、1 日分です。