Linux カーネル6.6

| コメント(0) | トラックバック(0)

ラズパイOS Bookworm に大量のアップデートが来た。
それはいいのだが、アップデートしたらTVや録画系が全滅した。

ま、こういうこともあろうかと思って、
バックアップSSDはちゃんと用意してある。
シャットダウンしてSSDを乗せ換えて乗り切ってきた。

しかしこのまま放置しておくわけにもいかず、原因を探る。
ネット上にはやはりこの問題にぶち当たる人はそれなりにいて
原因はすぐにわかった。

原因は、Linuxカーネル6.4系以降でAPIが変わったことによる。
エラーログには、以下の情報が残っており、
./include/linux/export.h:29:22: error: passing argument 1 of 'class_create' from incompatible pointe>
29 | #define THIS_MODULE (&__this_module)
| ~^~~~~~~~~~~~~~~
| |
| struct module *
class_create() 関数の引数が変わってTHIS_MODULEの扱いが削除されたようだ。

対応方法は、このドライバソースの
修正前:ctx->class = class_create(THIS_MODULE, name);
修正後:ctx->class = class_create(name);
でTHIS_MODULEの引数を削除すればよい。

これで新しいカーネルにも対応できて復活した。
しかし貴重な休日は潰れた。

トラックバック(0)

トラックバックURL: https://pikachu.ddo.jp/cgi-bin/mt/mt-tb.cgi/2125

コメントする

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.8.2

このブログ記事について

このページは、ピカチュウが2024年4月 3日 08:00に書いたブログ記事です。

ひとつ前のブログ記事は「車を買いに行ってきた」です。

次のブログ記事は「パソコンは好きなので」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。