Waveshare 3.5inch RPi LCD (A)を使う - Naohiro2g/Raspberry-Pi-Projects GitHub Wiki
現状、とりあえず、2画面目として使える。が、まだよくわかってない。最終的には、アプリからLCD画面を使いたい。
言えることは、SSD起動状態でwaveshareのアーカイブをインストールしちゃダメ。スクリプトにconfig.txtとcmdline.txtを破壊されて起動しなくなる。
GPIOでSPIを使いたい時、/boot/config.txt にdtoverlay=waveshare35a をコメントアウトしないと、'SPI device not found'エラーが出る。
設定
/boot/overlays/waveshare35a.dtbo を配置。
/boot/config.txt にdtoverlay=waveshare35a を追記。これを生かしたままだと、SPIが使えなくなるので注意!
(1)コンソールでfbiを使い、LCDに壁紙画像を表示
fbi --noverbose --blend 1000 -t 3 -d /dev/fb1 /usr/share/rpd-wallpaper/*
(2)/usr/share/X11/xorg.conf.d/99-fbturbo.confの/dev/fb0を/dev/fb1に変更しておいて起動すれば、
LCDにデスクトップが立ち上がる。
(3)cmdline.txtにオプションとして `fbcon=map:1` を書いて起動すると、
コンソールとしてLCDが使用されて起動。デスクトップはHDMIに。
ctrl-alt-F1を打つと、LCDの方にキーボードが行く。ctrl-alt-F7で復帰。
(4)コンソールから以下のコマンドで切り替え。
`con2fbmap 1 1`
`con2fbmap 1 0`
試した
本家wiki https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)
本家wikiの通りにやると、LCD-show/フォルダが作られ、
./LCD35-show
でLCDへ切り替わり、
./LCD-hdmi
でHDMIへ戻る
環境ができる。
しかし、/boot/config.txtと/boot/cmdline.txtを書き換えられてしまうので、SSD起動では都合が悪い。
一方、こちらを使えば、ファイル一つの書き換えで切り替えられる。 https://github.com/swkim01/waveshare-dtoverlays
$ git clone https://github.com/swkim01/waveshare-dtoverlays.git
$ cd waveshare-dtoverlays
$ sudo cp waveshare-dtoverlays/waveshare35a-overlay.dtb /boot/overlays/
/boot/config.txt にdtoverlay=waveshare35aを追記した状態でリブートするとLCDのバックライトが消える。
LCDの初期化ができているということ。
/usr/share/X11/xorg.conf.d/99-fbturbo.confの/dev/fb0を/dev/fb1に変更。
コンソールで(ctrl-alt-F1で入ってログイン)
$ startx
すればLCD上でX11が立ち上がり、HDMI用デスクトップの一部がLCDにも表示される。
タッチパネルも効いてる。
この時、HDMI側のコンソールはctrl-alt-F7でデスクトップに抜けられ、HDMIとLCDの両方を使用可能。
もとに戻すには、/usr/share/X11/xorg.conf.d/99-fbturbo.confの/dev/fb1を/dev/fb0に戻してリブート。
(電源を入れ直さないと立ち上がってこなかった。。シャットダウンできていない??)
このスレッドは読んだほうが良さそう。Wed Jun 20, 2018のスレッド。
Busterでのデュアルスクリーン対応までつながっている。
Multiple Frame buffer beta testers wanted
https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=216399
6by9 の最初のポストにあるサンプルコマンドは動いた。
(1)コンソールでfbiを使い、LCDに壁紙画像を表示
fbi --noverbose --blend 1000 -t 3 -d /dev/fb1 /usr/share/rpd-wallpaper/*
(2)コンソールで以下コマンドにて、LCD側にコンソールが移動した。
con2fbmap 1 1
さらに、以下のコマンドでHDMI側に戻った。
con1fbmap 1 0
要するに、すでにfbを複数持つことができるカーネルになっているということかな?
参考になる?「ラズパイでデュアルディスプレイ( Xineramaで )」 https://qiita.com/tin-machine/items/83118d45569602cea247