マジョカアイリス細長液晶をラズパイで使う

# この記事について
ラズパイのLinux framebuffer の仕組みを使ったfbtft にmodドライバを当て、細長液晶へ映像を送ります。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">これくらいのレスポンス出ればとりあえず満足かなw<br><br>フレームバッファにさえなれば、startx でデスクトップも640x48で開ける(タスクバーが大きすぎるけどw)<br><br>あとは、ソースを公開できるところまでもっていけるかどうか…<br><br>ソース読み込んで解決できる問題なら良いけど…とりあえず読もう <a href="https://t.co/Ybi5M4v6Fi">pic.twitter.com/Ybi5M4v6Fi</a></p>&mdash; でべ (@devemin) <a href="https://twitter.com/devemin/status/1351198449442709508?ref_src=twsrc%5Etfw">January 18, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Python の PIL ライブラリ<br><br>Cもやろう <a href="https://t.co/xwya0SgBRe">pic.twitter.com/xwya0SgBRe</a></p>&mdash; でべ (@devemin) <a href="https://twitter.com/devemin/status/1351562926616788994?ref_src=twsrc%5Etfw">January 19, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# リポジトリ

### 配線・インストール方法はこちらへ
### →　https://github.com/devemin/fbtft
<br>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/devemin?ref_src=twsrc%5Etfw">@devemin</a> さん、こちらこそ、ありがとうございました！！<br><br>私は、何も出来ないので、適当にGPIOの配線を楽にする<br>『majoca Iris LCD - Raspi GPIO チートシート』(転載自由)を作ってみました。<br><br>みんな、ラズパイでも <a href="https://twitter.com/hashtag/%E3%83%9E%E3%82%B8%E3%83%A7%E3%82%AB%E3%82%A2%E3%82%A4%E3%83%AA%E3%82%B9%E3%83%8F%E3%83%83%E3%82%AF?src=hash&amp;ref_src=twsrc%5Etfw">#マジョカアイリスハック</a> を楽しみましょう！！<a href="https://t.co/ATRszPNwxS">https://t.co/ATRszPNwxS</a> <a href="https://t.co/X5rBNuAt4T">https://t.co/X5rBNuAt4T</a> <a href="https://t.co/itzcdFO7cR">pic.twitter.com/itzcdFO7cR</a></p>&mdash; Komikoni@LOVE_THE_WORLD (@komikoni) <a href="https://twitter.com/komikoni/status/1351912127959687169?ref_src=twsrc%5Etfw">January 20, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



Thanks !!  [Twitter @komikoni](https://twitter.com/komikoni)
（CC BY-SA の公式画像を修正されたもの）
https://www.raspberrypi.org/documentation/usage/gpio/


<br>
<br>
fbtft は5.4系で構成が大きく変わりましたが、これは 5.4系でも4.x系でも動きます。


# 環境

ラズパイ 4 8gB / 2021-1-11 released Raspberry Pi OS, カーネル 5.4.83-v7l+
ラズパイ 3B+ / 2021-1-11 released Raspberry Pi OS, カーネル 5.4.83-v7+
ラズパイ 3B+ / 2019-4-8 released Raspian OS, カーネル 4.14.98-v7+
（ラズパイ Zero W / Raspberry Pi OS Lite でも動作したのことです。 @lutecia16v さん、ありがとうございます。）

マジョカアイリス細長液晶
電源（茶色基板液晶なら6V程、みどり基板液晶なら12V程？）
https://github.com/htlabnet/inside_magimajopures/wiki/sushi_chika


# フレームバッファのソフトいろいろ

参考：
https://github.com/notro/fbtft/wiki/Framebuffer-use


# fbcp
デスクトップを細長液晶へ縮小表示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478524/39a431e2-aed6-96f7-aeeb-4af60feba125.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478524/232a9514-285a-65c6-03ac-9b70ee508a23.png)

```
sudo apt-get install cmake
git clone https://github.com/tasanakorn/rpi-fbcp
cd rpi-fbcp/
mkdir build
cd build/
cmake ..
make
./fbcp
```

# fbtest
ベンチマーク・テストのアプリです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478524/30daee76-2d91-5e3e-67ba-72cae08deadb.png)

```
sudo apt-get install libnetpbm10-dev
git clone https://git.kernel.org/pub/scm/linux/kernel/git/geert/fbtest.git
cd fbtest
make
./fbtest -f /dev/fb1
```
# con2fbmap
コンソールを、通常の画面ではなく細長液晶で実行します。
（画面の更新がバグってるようです）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478524/ed456b9a-1d1d-0f84-7927-b23b06b04510.png)

```
sudo raspi-config
# 1.system の中の Boot で console only を選ぶと、次回再起動時にコンソール画面になります。
```
そこで改めてドライバロード後、

```
con2fbmap 1 1
# で細長液晶にコンソール表示（top コマンド等ギリギリ見える）
con2fbmap 1 0
# で通常の画面へ戻る
#デスクトップ起動にもどすには、再度 sudo raspi-config で、また 1.system の Boot で GUI auto login にする
```

# X11 startx
縮小表示ではなく、デスクトップ画面を細長液晶に写せます。（タスクバーを細く設定しても厳しいですがｗ）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478524/09edd185-4d5d-9ae8-0181-f4f00ffcdb0b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478524/a5013285-6c84-ab2f-b82f-6c7b0f9ee8a1.png)


```
sudo apt-get install xserver-xorg-video-fbdev
sudo mousepad (or leafpad ) /usr/share/X11/xorg.conf.d/99-fbdev.conf

# 以下の内容を保存
Section "Device"  
  Identifier "myfb"
  Driver "fbdev"
  Option "fbdev" "/dev/fb1"
EndSection

# 上のcon2fbmap と同様に、Boot を console にします

# ドライバロード後、
FRAMEBUFFER=/dev/fb1 startx
```