1,解压驱动
tar zxvf igb-5.1.2.tar.gz
cd igb-5.1.2/src
2,安装编译环境:
apt-get install build-essential linux-headers-`uname -r`
make install
在这里编译错误如下:
=================================================================
make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/root/igb-5.1.2/src modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
CC [M] /root/igb-5.1.2/src/igb_main.o
/root/igb-5.1.2/src/igb_main.c:215: error: implicit declaration of function ‘SET_RUNTIME_PM_OPS’
/root/igb-5.1.2/src/igb_main.c:218: error: initializer element is not constant
/root/igb-5.1.2/src/igb_main.c:218: error: (near initialization for ‘igb_pm_ops.suspend_noirq’)
make[4]: *** [/root/igb-5.1.2/src/igb_main.o] 错误 1
make[3]: *** [_module_/root/igb-5.1.2/src] 错误 2
make[2]: *** [sub-make] 错误 2
make[1]: *** [all] 错误 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
make: *** [default] 错误 2
==================================================================
解决以上错误使用以下命令:
make CFLAGS_EXTRA=-DDISABLE_PM
能过禁用那个模块再进行编译,最后编译成功。
==================================================================
# make CFLAGS_EXTRA=-DDISABLE_PM
make -C /lib/modules/2.6.32-5-amd64/build SUBDIRS=/root/igb-5.1.2/src modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
CC [M] /root/igb-5.1.2/src/igb_main.o
CC [M] /root/igb-5.1.2/src/e1000_82575.o
CC [M] /root/igb-5.1.2/src/e1000_i210.o
CC [M] /root/igb-5.1.2/src/e1000_mac.o
CC [M] /root/igb-5.1.2/src/e1000_nvm.o
CC [M] /root/igb-5.1.2/src/e1000_phy.o
CC [M] /root/igb-5.1.2/src/e1000_manage.o
CC [M] /root/igb-5.1.2/src/igb_param.o
CC [M] /root/igb-5.1.2/src/igb_ethtool.o
CC [M] /root/igb-5.1.2/src/kcompat.o
CC [M] /root/igb-5.1.2/src/e1000_api.o
CC [M] /root/igb-5.1.2/src/e1000_mbx.o
CC [M] /root/igb-5.1.2/src/igb_vmdq.o
CC [M] /root/igb-5.1.2/src/igb_procfs.o
CC [M] /root/igb-5.1.2/src/igb_hwmon.o
CC [M] /root/igb-5.1.2/src/igb_debugfs.o
LD [M] /root/igb-5.1.2/src/igb.o
Building modules, stage 2.
MODPOST 1 modules
CC /root/igb-5.1.2/src/igb.mod.o
LD [M] /root/igb-5.1.2/src/igb.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
==================================================================
编译完成!
将驱动拷贝到系统驱动目录中,如果有就进行覆盖。
cp igb-5.1.2/src/igb.ko /lib/modules/2.6.32-5-amd64/kernel/drivers/net/igb/igb.ko
重新成功模块依赖,将所有的模块进行重新分析工作,建立关联文件
depmod -a
加载模块igb
modprobe igb
查找igb模块是否加载
lsmod | grep igb
重启网络服务
service networking restart
将驱动更新到内核当中,以后开机就会自动加载模块。
update-initramfs -ut
重启主机
reboot
build igb driver with DCA
RHEL dracut --force
ubuntu update-initrafs -u
可解决重启网卡驱动读取内核默认版本的问题。