linuxでintel NIC driver e1000eを最新に更新する

intelの公式からとってくる。

linux - driver

2012/01/11時点で最新は1.9.5。


kernelのsourceが必要なので、なければinstallしておく。

# apt-get install linux-headers-2.6.XX
# yum install kernel-devel 

install

RHEL/CentOSはREADMEの通りで出来た。

# tar zxvf e1000e-1.9.5.tar.gz
# cd e1000e/src
# make install 
# cd /
# modinfo e1000e

debian 6.0.3の場合

エラーになった。

# make install
make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/usr/local/src/intel_e1000e/e1000e-1.9.5/src modules
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.32-5-amd64' に入ります
	CC [M]  /usr/local/src/intel_e1000e/e1000e-1.9.5/src/netdev.o
/usr/local/src/intel_e1000e/e1000e-1.9.5/src/netdev.c: In function ‘e1000_runtime_resume’:
/usr/local/src/intel_e1000e/e1000e-1.9.5/src/netdev.c:6606: error: ‘struct dev_pm_info’ has no member named ‘runtime_auto’
/usr/local/src/intel_e1000e/e1000e-1.9.5/src/netdev.c: At top level:
/usr/local/src/intel_e1000e/e1000e-1.9.5/src/netdev.c:7500: error: implicit declaration of function ‘SET_RUNTIME_PM_OPS’
/usr/local/src/intel_e1000e/e1000e-1.9.5/src/netdev.c:7502: error: initializer element is not constant
/usr/local/src/intel_e1000e/e1000e-1.9.5/src/netdev.c:7502: error: (near initialization for ‘e1000_pm_ops.suspend_noirq’)
make[4]: *** [/usr/local/src/intel_e1000e/e1000e-1.9.5/src/netdev.o] エラー 1
make[3]: *** [_module_/usr/local/src/intel_e1000e/e1000e-1.9.5/src] エラー 2
make[2]: *** [sub-make] エラー 2
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.32-5-amd64' から出ます
make: *** [default] エラー 2

Hi,

got the same here, just after upgrade to 2.6.32-38.

I managed to compile it by temporarily disabling PowerManagement
make CFLAGS_EXTRA=-DDISABLE_PM install

Any "real" solution is welcome.

とあるとおり、CFLAGS_EXTRA=-DDISABLE_PM をつければ、とりあえず入った。