RaspBerry Pi に I2C 接続の単色 128*64 ドットの OLED(有機 EL) ディスプレイを接続して、コンソール画面(CTRL+ALT+F1 を押したときの画面)を表示するディスプレイとして使う手順です。RaspBerry Pi 本体に接続した USB キーボードから 16x8 文字表示のコンソールにログインして操作できます。
下記の設定後、RaspBerry Pi 本体に接続した USB キーボードで CTRL+ALT+F1 を押すと、コンソールの解像度が 128*64 になり、有機 EL ディスプレイに表示されるようになります(同時に HDMI にも出力されます)。X がインストールされていれば CTRL+ALT+F7 で X Window に戻ります。
(1) 配線
(2) oled コマンド(フレームバッファの内容を I2C に繰り返し出力するオリジナルプログラム)を /bin/oled に置いて実行パーミションを付ける
# cp oled /bin/oled # chmod a+x /bin/oled
(3) 8dot フォント(alt-8x8 他)をインストール
# apt-get install console-data
(4) I2C の有効化
# raspi-config
(5) 解像度の追加
mode "128x64-60" # D: 25.175 MHz, H: 31.469 kHz, V: 59.94 Hz geometry 128 64 128 64 8 timings 39722 48 16 33 10 96 2 endmode
(6) oled サービスの追加
[Unit] Description = oled daemon After = multi-user.target [Service] ExecStartPre=/bin/bash -c "/bin/chvt 1; /bin/fbset '128x64-60'; /bin/setfont 'alt-8x8'; export TERM=linux; setterm -blank 0 > /dev/tty1" ExecStopPost=/bin/bash -c "/bin/fbset '800x600-60'; /bin/setfont 'default8x16'" ExecStart = /bin/oled Restart = always Type = simple [Install] WantedBy = multi-user.target
(7) OS 起動時にサービスを開始するように指定
# systemctl enable oled
を実行する(不要になったら systemctl disable oled で無効化できる)。
# service oled stopでサービスが停止し、有機 EL ディスプレイが更新されなくなり、コンソールの解像度が 800*600 になります。
# service oled startでサービスを再開します。
daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/xconsole
daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/tty1 ←この行を修正
# setterm -cursor off > /dev/tty1