deveminさんの解析とソースコードとアドバイスのおかげで、なんとかここまで到達しました。
FFC-2.54mmピンヘッダ変換
当初はaitendoから22pin FFC〜2.54mmピンヘッダ変換を通販して使っていましたが動作せず。deveminさんからaitendoのはノイズのせいでダメだったので秋月の変換に変えた話を伺ったので私も秋月で買ってやっと映るようになりました。
aitendoの変換はFFCコネクタの取り付けがセルフはんだ付けだったので、そこがよろしくなかった可能性もあります。なにせ0.5mmピッチなので厳しい。
Device Tree
14日のブログに想像で書いたDevice Treeをぶん投げていました。
その後のdeveminさんの改善でDevice Treeもまあまあ使い物になることがわかり、調べつつ書いておいてよかったなーと思った次第です。意外とfbtftのDevice Treeの書き方がドキュメント化されておらず、GithubのIssueとか他のdtsとか見ないと細部がわからなかったので、そのへんをまとめておけたのはよかったなと思います。
最終的にはやはりドライバーも書かないとダメそうということがわかったので、Device Treeに書くものはGPIOピン情報程度になっています。既存のドライバーにdtsで上書きするだけで使えるなら提供するものがdtsだけで済んだんでしょうけど、変態サイズのLCDなのでそのへんの書き換えがやはり必要なようでした。
卒・ピンヘッダ配線
バックライトの5.5V化の課題が残ってますが、動くことがわかったので、ピンヘッダ配線をさっさとやめてプロトタイプボードに配線したバージョンを作りました。aitendoのプロトタイプボードにピンソケットを必要分だけつけて(ケチった)、秋月のFFC変換が刺せるようにピンソケットを配置、あとは必要な配線をすると言ったかんじです。
一見カオスですが、ピンヘッダケーブルがとっちらかるよりは断然マシですね。
アクセスしやすい分は表面でも配線。GPIOが1列になって取り出せるようになってるんですが、GPIO24だけなぜかなくてピンソケットのところから直接取ってます。
aitendoのFFC変換を使ってた頃の写真ですが、こんだけのピンヘッダケーブルを使ってたのがなくせたので非常にさっぱりですね。
ドライバーのDKMS管理
ドライバーの管理とかインストールの簡素化もチャレンジ。DKMSパッケージ化することで、管理的にはリポジトリにはマジョカアイリスのドライバーのコードとfbtft.hだけあればOKな状態まで簡素化できました。
DKMSはこう言う感じのドライバーを動的にコンパイルしてくれるフレームワークです。お高いネットワークカードとかのカーネルには標準で入ってないやつのドライバーでよく使われているやつです。もうちょいいい感じの概要はArchLinux Wikiより引用。とくにapt upgradeでカーネルのバージョンが変わっても(コンパイルが通れば)勝手に再コンパイルしてくれるのが利点です。
Dynamic Kernel Module Support (DKMS) はカーネルのソースツリーの外にソースが存在する Linux カーネルモジュールの生成を可能にするプログラム/フレームワークです。新しいカーネルがインストールされたときに DKMS モジュールは自動的にリビルドされます。
https://wiki.archlinux.jp/index.php/Dynamic_Kernel_Module_Support
DeviceTreeも含めてリポジトリにまとめた結果がこちらです。インストールスクリプトも雑ながら用意したので、インストールの簡素化も達成です。
サイネージ化
動作したあとはコンソールなんなりX環境なり出せるようになるので、トイレサイネージと同じ手順でサイネージ化してみました(冒頭の写真)。HTMLで640x48にコンテンツを詰め込むようなものを作ってそれを映すだけです。