自動でディスプレイをRaspberry PIに切り替えたい。

chromecastを開始すると、TVの電源がONになり、castの入力に切り替わる。
Raspberry PIでも同じことをやりたい。
ちなみTVは、
SHARP Aquos LC-22K40

HDMIでのデバイス コントロールの規格は「(HDMI) CEC」というものらしい。
Debian/Raspbianでは次のlibCECが使える。
libCEC
http://libcec.pulse-eight.com/
インストールは次で。
$ sudo apt install cec-utils
使い方の参考:Using cec-client on a Raspberry Pi
https://blog.gordonturner.com/2016/12/14/using-cec-client-on-a-raspberry-pi/
電源ONを試してみる。
$ echo “on 0” | cec-client RPI -s -d 1
動かない…
ググってみると、まずはケーブルを疑えと。
Raspberry PIとディスプレイを繋いでいるHDMIケーブルを取り外し、
chromecastにかましてみたら、やはり電源ONできなかった。
→ ケーブルが対応していない。
HDMI カテゴリー2のケーブルをつないでみた。
ELECOM CAC-HD14EY10BK
で、無事に機能しました。
電源ON
$ echo “on 0” | cec-client RPI -s -d 1
電源OFF
$ echo “standby 0” | cec-client RPI -s -d 1
さて、やりたいことは、
0. Raspberry PIの起動時に、
1. ディスプレイ電源ON、
2. 入力をRaspberry PIに切り替え。
まず、動作1,2のバッチファイルを次で作成する。
$ vi ~/sh/turnOnDisplay.sh
#!/bin/sh
echo “as” | cec-client RPI -s -d 1
echo “on 0” | cec-client RPI -s -d 1
[ 2018. 6.15 追記: コマンドの順を逆にしました。 ]
実行権限を付加する。
$ chmod 755 ~/sh/turnOnDisplay.sh
動作0はユーザのログイン前のタイミングで実行したい。
それを実現するために
$ sudo vi /etc/rc.local
最後の exit 0 の直前に上記のスクリプトを追加し、実行させる。
/home/pi/sh/turnOnDisplay.sh
これで、Raspberry PIの電源をONにすると、
ディスプレイ電源ON、入力切り替え、が自動で行われた。