📺

Raspberry Pi Zero W と 4DPi-32 (rev2ではない)を使う

2021/08/11に公開

最初に

タッチセンサーは有効にできなかった。キャリブレーション画面までは出せるのだが反応してくれない。個体不良なのか、構成ミスなのかわからず。利用目的的に問題なさそうなので諦めた。

そもそも、Raspberry Pi Zero W に 4DPi-32 を組み合わせるのが Not Supported な組み合わせ。

ピンの数が違うのでこれが本記事に影響している可能性がある。

そもそも論として同じタッチパネル液晶でも HDMI 経由で出力するような液晶をチョイスした方が良い。

が。4DPi32 は見た目がスッキリしているので悩みどころ。(もちろん、買うなら Rev2 で)

Rev2 と Rev1 の違いは、製品種別が自動判別できるようになったことと、ピンがラズパイ 1 用の 26 ピンからラズパイ 2 以降用の 40 ピンになったこと程度で、基本構成は一緒、ドライバというかカーネルも同じ。Rev1 だと config.txt に手で書かなければいけない部分が Rev2 だと自動。という程度の認識

ちなみに、接続は Raspberry Pi Zero の microSD カードを左側にした状態で、4DPi32 が Zero の下側にはみ出す方向に横長に置いた状態でピンを左寄せして接続すれば良い。

Zero の GPIO の右側(=電源 LED がある方)14 ピン分余っている状態なら OK。

もちろん、Rev2 であれば 40 ピン全部を覆うようになっている。

必要なリソース

取説の手順だと、tarball を持ってきて、/に展開すると kernel 等一式が展開されて、これで OK と書いているがそれをやると kernel panic で起動すらしなくなった。別の Linux PC で上書きした場合は起動したのでなにか間違えたのかもしれない。

手順

初期設定

この時点では HAT を接続しないこと(重要)

update をかけないこと(重要)

  • raspbian を焼く。執筆時点では 2020-12-02-raspios-buster-armhf.img
  • wpa_supplicant.conf と ssh を boot にコピー
  • microSD カードをラズパイに装着
  • microHDMI 接続のディスプレイと、USB キーボード、マウスを接続する
  • 最初の起動。
  • 初期設定を行う(ここで完了させておかないと、液晶では解像度が足りずボタンが押せない。)
  • 日本語にしたくなるが、英語にしておくと明らかに反応がよくなる。フォント周りの負荷?
  • アップデートするか?という手順は Skip する
  • IP アドレスと ssh 接続確認(注意:右上のネットワークインジケータにマウスオーバーした際に no wireless lan と表示されるのは問題ではない。クリックしたときに SSID と IP アドレスが表示されていれば良い)
  • 【オプション】vim を入れる。vi だとつらい

4DPi 用のカーネル導入

  • boot 内の overlays -> overlays_org にリネーム(念の為)
  • tarball を展開した中の /boot/overlays を boot にコピー
  • tarball 内の /boot/*.img と config.txt を boot にコピー
  • tarball 内の /lib/modules/* を rootfs の /lib/modules/ にコピー(上書きが発生したら何か間違えている)
  • tarball 内の /etc/modules を rootfs の /etc/modules に上書きコピー
  • config.txt に dtoverlay=4dpi-32 を追記(場所はあまり関係ない)

4DPi に GUI を出力するように設定

次のステップからは microHDMI での GUI は表示されなくなる。

  • 4DPi を接続する
  • tarball 内の /etc/X11/xorg.conf.d/99-fbturbo.conf を rootfs の /etc/X11/xorg.conf.d にコピー
  • 【オプション】/usr/share/X11/xorg.conf.d/99-fbturbo.conf を 99-fbturbo.conf.nouse 等にリネーム
  • 起動させて 4DPi に GUI が表示されるかテスト

最後に

apt update, upgrade をやってしまうと壊れる可能性がある。執筆時点(2020/12/19)では、この手順で動いたあとに、upgrade をすると、表示されなくなった。

やり直しは…最初からになるので、なにか事情があって apt upgrade を実行するのであれば、SD カードのフルバックアップを取ってから行うことをおすすめする。

トラブルシュート

基本

  • dmesg で起動時のメッセージを読んで、エラーになっているのを潰していく。
  • raspbian を素で起動しても出るエラーもあるのであまり深追いしないように注意
  • lsmod で指定したモジュールがロードされているかチェック。されていなければ、modprobeを使って手動ロードさせてみる。ダメならなにかエラーが出るはず。
  • GUI 周りのログは /var/log/Xorg.0.log を見る。HDMI にも LCD にも画面が出ていなければなにか出ているはず
  • デバイスファイルが作成されているかチェックする /dev/fb1 がないとか

microHDMI に画面出力したい

LED に画面が表示されていると GUI 操作できないに近いので、HDMI に戻したい場合は、

/etc/X11/xorg.conf.d/99-fbturbo.conf99-fbturbo.conf.nouse のようにリネームして再起動すれば OK。 LED に出力させるようにする場合は、ファイル名を元に戻す。

やらなかった手順

以下は覚書。問題が起きたときにやったが、それにより他の問題を引き起こした等でやらなかったか意味がなかった手順。

  • overlay_org -> overlays にファイルを上書き(これをしないと WiFi が使えなくなったことがあった)
  • /dev/fb1 が存在せず、 /dev/fb0 のみがある場合は、上記ファイルの /dev/fb1 を /dev/fb0 に書き換える…だが、おそらくこの場合は何かが間違っていると思われる。(config.txt の dtoverlay が間違っている?)

補遺

wpa_supplicant.conf

/boot/wpa_supplicant.conf (boot パーティションの /wpa_supplicant.conf)に以下の内容でファイルを作っておくと、ラズパイ起動時に /etc/wpa_supplicant/wpa_supplicant.conf に上書きされる(上書きしたあと boot の方は削除される)。

boot パーティションは FAT32 なので Windows でも読み書きできるが、rootfs は ext4 なので Linux 以外で読み書きできないという事情があるのでこういう親切をしてくれていると思われる。

`country=ja
update_config=1
ctrl_interface=/var/run/wpa_supplicant

network={
 scan_ssid=1
 ssid="your_sssid"
 psk="your_psk"
}

補遺 2

バックライトの PWM 制御

ソフトウェア的にはデフォルトで PWM 制御が ON。

4DPi 本体の裏側のジャンパで、バックライトの PWM 制御が OFF になっているので、そこを変更する。

明るさの変更は、

echo 100 | sudo tee /sys/class/backlight/4dpi-32-pwm/brightness

明るさは、 (暗)0〜100(明)の間の整数で指定する。0 だとバックライトオフ。

datasheet のコマンド sudo echo 0 > ... では Permission Denied になってしまうので tee を挟む必要があった。

ディスプレイの自動スリープ OFF

http://gml.blog.jp/archives/8144348.html

/etc/xdg/lxsession/LXDE/autostart に以下を追記

/etc/xdg/lxsession/LXDE/autostart
@xset s off
@xset s noblank
@xset -dpms

補遺 3

タッチパネル

sudo apt-get install evtest libts-bin libts0
sudo TSLIB_FBDEVICE=/dev/fb1 TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate

/dev/input/event0 はマウス等を接続していると /dev/input/event4 になったりする。

間違っている場合は ts_calibrate を起動した瞬間にエラーが出るのでわかる。

・・・が。タッチパネルの調整画面は表示されるが反応しない。

ここで心が折れてしまった。

参考リソース

Discussion