LoginSignup
18
25

More than 5 years have passed since last update.

Raspberry PIでデスクトップ環境無しでChromiumを起動する

Last updated at Posted at 2018-06-17

Raspberry PIとGoogle Homeを買って色々連携させようと模索中なのだけど、I/Fが音声だけというのは味気ない。
Raspberry PI自体はリビングのテレビにHDMIで接続しているので、こいつを活用できないかと言うのが最初の動機。

QtやSDLで今更に頑張ってもいいのだけど、手慣れたWeb関連の技術的が使えた方が楽だからなんか出来ないかと探してみたら以下の方法できたのでメモ。

基本方針

  • X起動用に小さなWindowManagerをバックエンド起動
  • 上記のDISPLAYにchromiumをキオスクモードで起動

最初、FrameBufferとかでChromiumとかを動かせないかとも考えたんだけど、今回はマシンパワー自体が足かせになるわけじゃないので、シンプルにX経由で起動。
かといってGnomeとか入れるのも嫌なので軽量WMのmatchbox-window-managerを入れる形に。

インストール

まずは必要なライブラリーの準備をします。

sudo apt-get install -y xinit matchbox-window-manager chromium-browser

Xの起動

続いてXの起動。まずは単純に以下を実行。

$ xinit matchbox-window-manager
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

たぶん、こんな感じで死にます。 Xwrapper.configで起動ユーザーを絞ってるのが原因なので、以下のように変更します。

$ diff Xwrapper.config /etc/X11/Xwrapper.config 
15c15
< allowed_users=anybody
---
> allowed_users=console
$ cp Xwrapper.config /etc/X11/Xwrapper.config 

で再びWMを起動します。

xinit matchbox-window-manager &

今度は上手く起動したはずです。

Chromiumの起動

続いてChromiumを起動します。

$ DISPLAY=:0 chromium-browser

上記で問題なく起動したと思います。DISPLAYを指定してるのでSSH経由の実行でも問題なく動作します。

キオスクモードにしてかつ適当なURLを指定して見ましょう。

$ DISPLAY=:0 chromium-browser -kiosk "http://www.youtube.com"

無事、フルスクリーンで起動したとおもいます。あとはURLのところを自分のnodejsとかにして、WebSocketで通信して操作すればGoogle Homeの音声コマンド等と連携してして色々出来そうです。

それではHappy Hacking!

参考

18
25
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
25