ドライバのバージョン確認

ドライバのバージョン確認

ドライバをビルドした環境のカーネルバージョンと、そのドライバをロードする環境のカーネルバージョンが異なると、insmod(ドライバをロードするコマンド)でエラーが発生します。
必ず両バージョンは一致させる必要があります。

開発マシンと動作マシンが同じであるなら問題ありませんが、異なるとそのようなエラーに遭遇することが多いので、注意が必要です。

ドライバをビルドした環境のカーネルバージョンはmodinfoコマンドにより確認できます。


# modinfo hello.ko
filename:       hello.ko
license:        Dual BSD/GPL
srcversion:     128F11CE82080B148485924
depends:        
vermagic:       2.6.18-238.el5 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1

いくつか項目が出力されますが、今回着目するのは、「vermagic」項目になります。
「vermagic」項目の内容を分割すると下表のようになります。

内容意味
2.6.18-238.el5ビルドした環境のカーネルバージョン
SMPマルチプロセッサ対応
mod_unloadドライバアンロード可能
686対応するアーキテクチャ
4KSTACKSカーネルスタックを8KBから4KBにする

「SMP」はマルチプロセッサ対応を意味します。
最近のCPUはマルチコアとなっているため、「SMP」がつくことがほとんどです。

タグ