確認環境
執行uname -a確認kernel版本,CentOS6.7如下:
2.6.32-573.el6.x86_64
安裝kernel-headers與kernel-devel
下載kernel-headers與kernel-devel rpm:(從此link找尋)
kernel-devel-2.6.32-573.el6.centos.x86_64.rpm kernel-headers-2.6.32-573.el6.centos.x86_64.rpm
在build system安裝這兩個rpm:
rpm -ivh kernel-devel-2.6.32-573.el6.centos.x86_64.rpm rpm -ivh kernel-headers-2.6.32-573.el6.centos.x86_64.rpm
安裝之後,要執行以下指令讓make能夠找到header code:
ln -s /usr/src/kernels/2.6.32-573.el6.centos.x86_64 /usr/src/linux
安裝gcc/rpm-build/make
gcc與make為編譯用,rpm-build為產生kernel module rpm檔用;假如你要在其他機器透過rpm安裝此driver,可build rpm出來使用:
yum install rpm-build gcc make
下載對應驅動
到Intel Download Center搜尋你要的驅動程式並下載: link。我所下載版本為3.1.2,檔案名稱為ixgbevf-3.1.2.tar.gz。
編譯與打包
編譯
tar zxvf ixgbevf-3.1.2.tar.gz cd ixgbevf-3.1.2/src make
如果沒意外,會產生ixgbevf.ko;可以透過insmod ixgbevf.ko載入它。
打包
這是從driver包內README看到的方法:
rpmbuild -tb ixgbevf-3.1.2.tar.gz
在執行完指令且沒問題後,可以在以下位置找到你的東西:
/root/rpmbuild/RPMS/x84_64/ixgbevf-3.1.2-1.x86_64.rpm
如果安裝的系統與build出來的版本不合,是會有WARNING的。
其它
一開始由於我是直接透過yum安裝kernel-headers與kernel-devel套件,在make過程中,一直出現implicit declaration error。起初懷疑和gcc版本有關,最後發現是由於yum安裝了更新版本的kernel-headers與kernel-devel。
留言
張貼留言