さて、CONTEC製CPIボードの認識ではまりました。
HAT拡張でスタックできるI/Oボードですね。
I2C通信で拡張しています。
ラズパイOSのBullseyeに対応しているのでドライバを
いれるのですがカーネルモジュールになっていて
カーネルヘッダが必要との説明です。
それでヘッダをいれてmake
するとエラーを吐いてコンパイルが通りません。
シンボルがないとか、関数がみつからないと言ってきます。
素人の私に対処ができるはずもなく、ドライバのソースを
眺めて解析するのも困難です。
おかしいなと思ったら最新のOSイメージがカーネルが 6.x系らしく
説明をみたら2022年4月のやつで動作確認ということで
カーネル側の変更に対応できていないことが判明しました。
5.x系が想定のよう。
なので2022年4月のイメージを落としてきてカスタムイメージ参照ということで
Pi ImagerでSDカードを作成しなおしました。
これでいいかと思ったのですが、
sudo apt update したらカーネルが最新になってしまい(涙)
またイメージを作り直しです。 私バカですね。(笑)
そんなでカーネルヘッダーを入れるとまたもや、見つからんと
コンパイルが通りません。
今度はカーネルVersionとヘッダーのVersion違いでインストール
されるソースが違うのが原因。
これもサイトへ行ってdebファイルを該当Verのヘッダーのやつを
見極めてインストールしました。
http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/
から探します。
これでやっとコンパイルが通り、めでたく使えるようになりました。
4回もイメージを作り直しました。(涙)
わかっていれば対処できますが、手探りだったので、かなり
回り道しました。
これで最後は
apt-markコマンドでapt updateでカーネルが更新対象にならないように
停止しておきます。
sudo apt-mark hold raspberrypi-kernel
sudo apt-mark hold firmware*
sudo apt-mark hold linux-image*
かな。
sudo systemctl disable apt-daily.timer
sudo systemctl disable apt-daily-upgrade.timer
とやっておきます。
これ重要です。カーネルUpdateされちゃうんで.....
これも今回苦労して得た知識です。
apt-markなんてコマンド今まで知らなかった。
こうやって知識は増えていくんです.... (無駄かどうかは別)
ではでは。