Falconの思うままに

PASCAL好きが、気ままにマニアックなネタを

ラズパイHAT CONTEC CPIボードではまり

さて、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なんてコマンド今まで知らなかった。

 

こうやって知識は増えていくんです.... (無駄かどうかは別)

 

ではでは。