Linuxのドライバ

ドライバはイコールmodule
moduleはkernelにロードしてkernelの機能を拡張するもの。
ipvs(LVS)やnetfilter(iptable)もkernel moduleとしてloadすることが可能。
load/unloadすることで必要なとき意外は使用しないことで、kernelのサイズを小さく保つ。不要なリソースを消費しない。等のメリットがある。

/lib/modules/`uname -r`
/lib/modules/`uname -r`/modules.dep はdriverのfull pathが列挙されたファイル
depmod -a で modules.dep が最新にupdateされる。
/etc/modprobe.conf に記載されたdriverはmodules.depを探してloadされるため、新しいdriverを起動時に自動でloadするには、/lib/modules配下のどっかのdirectoryにdriverを配置するだけではダメで、depmod -a してmodules.depをupdateしてやる必要がある。
結局結論として得た理解は、man /etc/modprobe.conf や man modprobe をちゃんと読んで、いろいろ試せば理解できると言うこと。

あと、modinfo module_name とやればmoduleの情報が取れる。moduleに渡すことが可能なパラメータもこのコマンドで分かる。最近、bonding driverのバージョンをしらべるのに、いちいちbondingをloadしてからcat /proc/net/bonding/bond0とかしたり、strings bonding.ko | less とかしてたけど、いけてなかった。対した情報も取れなかったし。
このような場合は modinfo bondingとすればよい。