Raspberry Piでkiosk端末

Raspberry Piを使って、電源スイッチON/OFFだけの操作で、Webページを全画面表示する端末(chromiumのkioskモード)をセットアップします。

目的

すだまり写真館|みんなで創るやまのべナビ (手前が機材一式)

Webサイトを街角ディスプレイしたいのだが、高価なPC使いたくない、起動停止やOSメンテナンスなど余計な手間がかかると普通は扱えない。
・・・という問題を解決できそうだったので、Raspberry Pi購入してみました。なんといってもGPUの性能とHDMI出力が決め手。

「Webでできること」が全てできて、その端末を数千円(ディスプレイ除く)で用意できて、SDカードのコピーだけでシステムを量産できるというのは、使いどころが多い。いわゆるデジタルサイネージの機材に何十万何百万もかけなくてよくなり、ちいさな町の商店街でも気軽に導入できるようになっていく気がします。


Raspberry Pi & Raspbian セットアップ

OSは Raspbian “wheezy”を利用。
日本語化手順は「自家焙煎珈琲豆宅配のジュンコーヒー|Raspberry Pi :日本語表示、日本語入力、その他設定メモ」を参考しました。

周辺機材は、こちらのものをそっくり用意しました。
那由多屋 開発日誌|Raspberry PiでUSB無線LANアダプタを使う
一番安くて過不足のないセットだなと思います。とくに、Raspberry Piをどう使うにせよ、セルフパワーUSBハブは必須。


ディスプレイのコンフィグレーション

HDMI接続であればモニタの自動調整してくれているようですが、スライドショーのサイズが決まっている(1024x768)ので、それに合わせてディスプレイの解像度を決めます。
GPUのコンフィグレーション方法は「RPiconfig」を参照。

/boot/config.txtを開いて、
hdmi_group=2
hdmi_mode=16


ブラウザchromiumのインストール

Raspbian標準のブラウザはちょっと貧弱すぎるのでchromiumを採用します。

sudo apt-get install chromium


chromium 起動オプション(kioskモード)

Google Chrome Unofficial Wiki | 起動オプション
Peter Beverloo | List of Chromium Command Line Switches

chromium --kiosk http://www.yamanobe.me/slideshow/ &
※ kioskモードを抜けるには Ctrl+F4。


電源ONでchromiumを自動起動

RaspbianのデフォルトXSessionはLXDEなので(※)、
archlinux LXDE Autostart_Programs」を参考に、

~/.config/lxsession/LXDE/autostart
 @chromium --kiosk http://www.yamanobe.me/slideshow/

と設定してrebootしてみると、無事スライドショーが流れた。

※しばらくopenboxだと勘違いしていて、しばしopenboxの設定ファイル(~/.config/openbox/autostartなど)をいじって嵌ってた。"raspberrypi openbox autostart"とかで検索してみると自分と同じ勘違いしてる人多いw


電源OFFに対処する

raspberry pi のOSは電源ブチッとOFFでOK 「Raspberry Pi FAQs: Where’s the on / off switch?」なので、これで完成!と思ったら盲点がchromium であった。
chromiumを起動した状態で電源を切ると、次回起動時に、「chromium didn't shut down correctly...」とご丁寧な通知とともに、目的ページのロードを中止する。

解法は、chromium起動前に「exited_cleanly(前回shudown失敗フラグ)」を書き換えてしまうというもの。
Stack Overflow|How to disable the “Chromium didn't shut down correctly” message? Chromium 17, Ubuntu 10.04 [closed]
よって、

~/.config/lxsession/LXDE/autostart
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences
@chromium --kiosk http://www.yamanobe.me/slideshow/

として、何回ON/OFFしてもchromiumの起動が成功するようになりました。

コンテンツのロード中に電源を落とした場合、中途半端なキャッシュが残るのが嫌な場合は、
Google Group| Chromium-discuss: how to suppress "chromium didn't shut down correctly..." notification ?」にあるように、毎回キャッシュクリアしてからブラウザ起動すると良いようです。

~/.config/lxsession/LXDE/autostart
@rm -rf ~/.cache/chromium
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences
@chromium --kiosk --no-first-run http://www.yamanobe.me/slideshow/

コメント

コメントしてください

closed.