Raspberry Pi KIOSK(5)WaveShare SPI LCD
よく見かけるSPI接続の3.5インチLCDです。タッチパネル用割り込みピンが17番でSPI1(Auxiliary SPI)のCS1とぶつかっているため、SPI1を使うとタッチパネルが反応しなくなります。
作業の前にRead-only Root-FSを書き込み可にします。
sudo mount -o remount,rw /mnt/boot-ro sudo vi /mnt/boot-ro/config.txt 最後の行のinitramfs initrd.gzをコメントアウトして再起動する sudo reboot
必要なカーネルモジュールをロードするようにします。
sudo vi /etc/modules-load.d/fbtft.conf spi-bcm2835 flexfb fbtft_device
コンソールを設定します。
sudo vi /boot/cmdline.txt fbcon=map:1 fbcon=font:ProFont6x11を追加
fb0をfb1に変更します。
sudo vi /usr/share/X11/xorg.conf.d/99-fbturbo.conf
WaveShare SpotPear 3.2″ and 3.5/4.0″ TFT LCD overlays for the Raspberry PI and PI 2の手順に従ってオーバーレイをインストールします。最後の「:swapxy=1」が大事です。
git clone https://github.com/swkim01/waveshare-dtoverlays.git
sudo cp waveshare-dtoverlays/waveshare35a-overlay.dtb /boot/overlays/waveshare35a.dtbo
sudo vi /boot/config.txt dtoverlay=waveshare35a:swapxy=1
タッチパネル用セットアップ
sudo apt-get install xserver-xorg-input-evdev sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf sudo apt-get install xinput-calibrator
仮のキャリブレーション結果を/usr/share/X11/xorg.conf.d/99-calibration.confに書き込みます。
sudo vi /usr/share/X11/xorg.conf.d/99-calibration.conf Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "3900 200 200 3900" Option "SwapAxes" "0" EndSection
再起動します。
SSHからxinput_calibratorを実行します。
DISPLAY=:0.0 xinput_calibrator
xinput_calibratorの出力を/usr/share/X11/xorg.conf.d/99-calibration.confに書き込みます。
sudo vi /usr/share/X11/xorg.conf.d/99-calibration.conf Section "InputClass" Identifier "calibration" MatchProduct "ADS7846 Touchscreen" Option "Calibration" "3916 230 238 3864" Option "SwapAxes" "0" EndSection
Read-only Root-FSを書き込み不可に戻します。
sudo vi /boot/config.txt 最後の行のinitramfs initrd.gzのコメントアウトをはずして再起動する sudo reboot