LoginSignup
12
12

More than 5 years have passed since last update.

Raspberry Pi 2 に3.2インチLCDを載せたいな

Posted at

はじめに

Waveshareの3.2インチLCDをRaspberryPi2で動作させるまで。
LCD自体はAmazonで購入。

NOOBS 1.7.0ベースのraspbianで実施。
WiFi経由でSSH接続して設定。

以下のサイトを参考にさせてもらいました。ありがとうございます。
http://tomosoft.jp/design/?p=4856
http://arakan60.mydns.jp/04kousaku/31-0132lcdinst.html

各種設定

インストールし終わった時点でファイルシステムが拡張されているようなのでExpand Filesystemはしなかった。

X11関連の無効化

$ sudo vi /usr/share/X11/xorg.conf.d/99-fbturbo.conf

下記の行をコメントアウト。

/usr/share/X11/xorg.conf.d/99-fbturbo.conf
 #Option “fbdev” “/dev/fb0″

SPIを有効に

$ sudo raspi-config
[9 Advanced Options]->[A6 SPI]から。
再起動を求められるので、してしまっていいと思う。

再起動

$ sudo reboot

fbtftのインストール(というかファームウェアの更新)

$ sudo rpi-update

再起動

$ sudo reboot

SPIの確認

$ dmesg | grep spi
[    0.000000] Linux version 4.0.7-v7+ (pi@raspi2) (gcc version 4.8.3 20140106 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2014.01 - Linaro GCC 2013.11) ) #1 SMP PREEMPT Sat Jul 11 20:44:05 CEST 2015
[    4.861048] bcm2708_spi 3f204000.spi: DMA channel 2 at address 0xf3007200 with irq 77
[    4.861087] bcm2708_spi 3f204000.spi: DMA channel 4 at address 0xf3007400 with irq 20
[    4.918969] ads7846 spi0.1: touchscreen, irq 497
[    4.919764] input: ADS7846 Touchscreen as /devices/platform/soc/3f204000.spi/spi_master/spi0/spi0.1/input/input0
[    4.925048] bcm2708_spi 3f204000.spi: SPI Controller at 0x3f204000 (irq 80)
[    4.925084] bcm2708_spi 3f204000.spi: SPI Controller running in dma mode

なんかタッチパネルのが出てるけど今回は気にしない。

fbtftのロード

電源が上側に来るようにしたかったので270度回転で。
$ sudo modprobe fbtft_device name=waveshare32b rotate=270

ロードの確認

$ dmesg | grep fbtft_device
[   34.169613] fbtft_device: module is from the staging directory, the quality is unknown, you have been warned.
[   34.170509] fbtft_device:  SPI devices registered:
[   34.170529] fbtft_device:      ads7846 spi0.1 1000kHz 8 bits mode=0x00
[   34.170537] fbtft_device:  'fb' Platform devices registered:
[   34.170561] fbtft_device:      soc:fb id=-1 pdata? no
[   34.170719] fbtft_device:  GPIOS used by 'waveshare32b':
[   34.170731] fbtft_device:    'reset' = GPIO27
[   34.170740] fbtft_device:    'dc' = GPIO22
[   34.170747] fbtft_device:  SPI devices registered:
[   34.170758] fbtft_device:      ads7846 spi0.1 1000kHz 8 bits mode=0x00
[   34.170768] fbtft_device:      fb_ili9340 spi0.0 48000kHz 8 bits mode=0x00

GUIが起動しないようにする

$ sudo raspi-config
[3 Boot Options] -> [B1 Console]か[B2 Console Autologin]
これをやらないと下のマッピング変更をしてもうまくいかなかった。

起動

コンソールのマッピングをどうにかするらしい
$ con2fbmap 1 1

うまくいってればこの時点で何かしら表示されるはず。

起動時にカーネルモジュールをロードするようにする

参考にしたサイトで説明されていた /etc/modules だけに書くやり方だとうまくいかなかった。
wikiに書いてあるやり方でやってみたら動いた。
https://github.com/notro/fbtft/wiki#install

/etc/modprobe.d/fbtft.conf を作成

/etc/modprobe.d/fbtft.conf
options fbtft_device name=waveshare32b rotate=270

/etc/modules-load.d/fbtft.conf を作成

/modules-load.d/fbtft.conf
spi-bcm2835
fbtft_device

/etc/modules の編集

/etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

i2c-dev
fbtft_device

ファイルの最後に fbtft_device を追加。

/boot/cmdline.txt の編集

/boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait fbcon=map:10

行の末尾に fbcon=map:10 を追加

はまったところ

ドライバーの場所

The FBTFT drivers are now included in the Raspberry Pi Foundation kernel and can be installed with plain rpi-update.

とのことなのでREPO_URIとかは特に指定せずに実行した。

なぜかcon2fbmapを実行するとpermissionで文句を言われる

sudoで実行すると動くものの、参考にしたサイトでは誰もそんなことしていないので調べた。
どうやらpiユーザーじゃなくて適当なユーザーを作って使っていたせいでvideoグループに所属していなかったのが原因らしい。
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=6568
hogeグループのhogeユーザーなら
$ sudo usermod -G video,hoge hoge
あとあと調べたらこっちのほうが安心とのこと(上記は追記じゃなくて上書きになるらしい)
http://qiita.com/tk1024/items/16e98031b84a31df469b
$ gpasswd -a hoge video

con2fbmap 叩いても表示されないどころか重くなる

GUI立ち上がってるとどうやらだめらしい。
コンソール起動にしたら解決した。
GUI立ち上げたい場合はコマンド叩いてあげるといい。
$ FRAMEBUFFER=/dev/fb1 startx

/etc/modules に書くだけでは動かない

参考にしたサイトなどでは /etc/modules に書くだけで動いたようだが、自分はだめだった。
原因は不明。
OSのバージョンなのか、fbtftのバージョンなのか。謎。

タッチパネルは?

またの機会に。

12
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
12