概要
Raspberry Piを使って、ブラウザが立ち上がるキオスク端末を制作してます。
トライ・アンド・エラーを繰り返しながら実験機が完成したので、改めてOSをインストールした直後からの綺麗なSDカードを制作しようと思ったのですが、autostart
ファイルが無くなっていて、実験機と同じ構成にするのは無理って事になりました。
正確には、古いバージョンのRaspbianを使えば、出来ないことはありませんが、最新のOSに追従できないのは痛すぎるので、別な方法を模索することにしました。
使用したのは、2018-11-13-raspbian-stretch.imgです。
問題点
Raspberry Piは、少し前からデスクトップ環境をLXDEからPIXELへ変更しています。(PIXELはLXDEをベースに開発)
~/.config/lxsession/LXDE-pi/autostart
ファイルは、パスから察するに、LXDEの機能だけど互換性確保のために、残されていたんでしょう。
2018-11-13-raspbian-stretchからディレクトリごと無くなっています。
PIXELに代替となるような仕組みがあっても良さそうですが、見つけることはできませんでした。
代替手段
幸いなことに、Raspberry Piには、もともと複数の自動起動の手段が用意されています。
(1)/etc/rc.local
簡単にプログラムを起動したい用途に良さそうです。
$ nano /etc/rc.local
(2)autostart
これが、今回ダメになった奴です。
(3)crontab @reboot
ユーザー権限でプログラムが実行されます。
root権限で実行したら困るようなプログラムに使うようです。
$ crontab -e
(4)/etc/init.d
こちらもJessieからsystemdが推奨されることになっているので使わない方が良さそうです。
(5)systemd
設定する事が多いため少し複雑ですが、細かな設定ができるので、これを使うのが良さそうです。
systemdで設定する
サービスを作成する
$ sudo nano /etc/systemd/system/open-browser.service
[Unit]
Description=launch chromium-browser
[Service]
User=pi
Environment=DISPLAY=:0
ExecStart=chromium-browser --kiosk http://www.youtube.com
[Install]
WantedBy=user@.service
サービスを再読み込み
$ sudo systemctl daemon-reload
サービスの自動起動を有効化
$ sudo systemctl enable open-browser.service
サービスを開始(確認)
$ sudo systemctl start open-browser.service
終わりに
autostartが使えなくなってからまだ時間が経っていないからか、ネット情報が少なくて難儀しました。
lite(CUI版)にmatchbox-window-managerとchromium-browserをインストールする構成も試してみたのですが、起動時間が通常版よりも長いという予想に反した結果だったので、通常版を使用しています。