110Gd (IT8718F) のためにカーネルモジュール it87.c をビルドする (2)

110Gd (IT8718F) のためにカーネルモジュール it87.c をビルドする (1) - daily dayflower の続きです。

その後の奮闘(昨日の記事の追記参照)で insmod を使った場合に it87.ko がきちんと ITE8718F を認識されるところまでは来ました。

あとは,modprobe で正常に読み込みできるようにすればいいのですが……どうやら昨日も言及した extra, misc, updates, weak-updates というディレクトリにそれほどの意味はない((これらのディレクトリを使用しているドライバは外部スクリプト等で自力で insmod しているようです))みたいなので,modprobe を実行すると insmod が自動的に実行されるようにすればよいでしょう。

まず it87.ko を /lib/modules/`uname -r`/updates 直下におきます。

次に modprobe.conf の機能を使って,it87 をロードする際に insmod を実行されるようにします。といっても modprobe.conf を直接いじるのは今後のこと(=rpm 化)を考えると敬遠したいので,modprobe.d/update-it87 というファイルを作成して,そこに書くことにします。

# modprobe.d/update-it87

install it87 /sbin/insmod /lib/modules/`/bin/uname -r`/updates/it87.ko

これだけです。install という設定子ではシェルコマンドを記述できるので,こんな感じで書けば大丈夫です。また,依存情報はカーネルモジュール自身に記述されているので,別途 i2c-isa, i2c-core, hwmon, hwmon-vid 等をロードする必要はありません。

ではロードしてみましょう。

% sudo /sbin/modprobe it87

% /sbin/lsmod | grep it87
it87                   60204  0 
hwmon_vid              35905  1 it87
hwmon                  36553  1 it87
i2c_isa                39105  1 it87
i2c_core               56129  5 it87,eeprom,i2c_isa,i2c_ec,i2c_i801

無事ロードされました。

これで lm_sensors サービスからも自動的に読み込まれるようになりました。