No module xxx found for kernel → Device eth0 has different MAC address → delaying initialization

実にくだらない、検索に類似例がないくらい下らない理由でカーネルビルドして起動するのに失敗していました。
でもほら、家電が動かない理由のトップはコンセントがささってないのが理由、という話もありますし。(都市伝説なのかどうかは知らない)

No module xxx found for kernel

Centos5 + 自前でビルドした3.4.7、という環境において、Linux 3.5.4のソースコードよりビルド。

WARNING: No module ehci-hcd found for kernel 3.5.4-hoge, continuing anyway
WARNING: No module ohci-hcd found for kernel 3.5.4-hoge, continuing anyway
WARNING: No module uhci-hcd found for kernel 3.5.4-hoge, continuing anyway
WARNING: No module raid1 found for ker nel 3.5.4-hoge, continuing anyway
WARNING: No module raid1 found for kernel 3.5.4-hoge, continuing anyway
WARNING: No module ahci found for kernel 3.5.4-hoge, continuing anyway

このカーネルで起動するとパニック。
no moduleって言っているのでその通りに、足りないドライバを組み込みからモジュールに…つまりmake menuconfigの見た目上<*>からに変更してみたら解決。あまり深く考えないことにする。

次はNICがおかしかった

Device eth0 has different MAC address than expected, ignoring.

めでたく起動したものの、ネットワークデバイスが上がらない。今まで普通に使っていたカーネルからifcfg-eth0変えていないのに文句を言われるなんて…。検索したところ、HWADDRをコメントアウトすればいいという話を見かけたため実行してみても、エラーが変わるのでダメでした。

Device eth0 does not seem to be present, delaying initialization

こちらは検索するとudev関連が引っかかるけれども、うちの場合はifconfig -aでeth0が出てこない。
結局こちらもドライバで、カーネルのConfigを確認したところ、e1000eがビルドされていませんでした。これをチェックしてビルドしなおしたところ、ようやく解決して無事動作しました。無事動いていた3.4.7を適当にビルドしたときに、手動で印を付けた記憶はないんですが、デフォルト値が変わったんでしょうか?