差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
cpp:linux_kernel:build_driver:build_nic_on_centos6.7 [2016/10/12 13:29] tony |
cpp:linux_kernel:build_driver:build_nic_on_centos6.7 [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 9: | 行 9: | ||
下載kernel-headers與kernel-devel rpm:(從此[[http://vault.centos.org/centos/6.7/centosplus/x86_64/Packages/|link]]找尋) | 下載kernel-headers與kernel-devel rpm:(從此[[http://vault.centos.org/centos/6.7/centosplus/x86_64/Packages/|link]]找尋) | ||
<code bash> | <code bash> | ||
- | kernel-devel-2.6.32-573.el6.centos.plus.x86_64.rpm | + | kernel-devel-2.6.32-573.el6.centos.x86_64.rpm |
- | kernel-headers-2.6.32-573.el6.centos.plus.x86_64.rpm | + | kernel-headers-2.6.32-573.el6.centos.x86_64.rpm |
</code> | </code> | ||
在build system安裝這兩個rpm: | 在build system安裝這兩個rpm: | ||
<code bash> | <code bash> | ||
- | rpm -ivh kernel-devel-2.6.32-573.el6.centos.plus.x86_64.rpm | + | rpm -ivh kernel-devel-2.6.32-573.el6.centos.x86_64.rpm |
- | rpm -ivh kernel-headers-2.6.32-573.el6.centos.plus.x86_64.rpm | + | rpm -ivh kernel-headers-2.6.32-573.el6.centos.x86_64.rpm |
</code> | </code> | ||
- | ===== 安裝gcc與rpm-build ===== | + | 安裝之後,要執行以下指令讓make能夠找到header code: |
- | gcc為編譯用,rpm-build為產生kernel module rpm檔用;假如你要在其他機器透過rpm安裝此driver,可build rpm出來使用: | + | |
<code bash> | <code bash> | ||
- | yum install rpm-build gcc | + | ln -s /usr/src/kernels/2.6.32-573.el6.centos.x86_64 /usr/src/linux |
+ | </code> | ||
+ | ===== 安裝gcc/rpm-build/make ===== | ||
+ | gcc與make為編譯用,rpm-build為產生kernel module rpm檔用;假如你要在其他機器透過rpm安裝此driver,可build rpm出來使用: | ||
+ | <code bash> | ||
+ | yum install rpm-build gcc make | ||
</code> | </code> | ||
===== 下載對應驅動 ===== | ===== 下載對應驅動 ===== | ||
- | 到Intel Download Center搜尋你要的驅動程式並下載: [[https://downloadcenter.intel.com/download/18700/Network-Adapter-Virtual-Function-Driver-for-10-Gigabit-Network-Connections|link]]。我所下載版本為3.1.2,檔案名稱為ixgbevf-3.1.2.1.x86_64.rpm。 | + | 到Intel Download Center搜尋你要的驅動程式並下載: [[https://downloadcenter.intel.com/download/18700/Network-Adapter-Virtual-Function-Driver-for-10-Gigabit-Network-Connections|link]]。我所下載版本為3.1.2,檔案名稱為ixgbevf-3.1.2.tar.gz。 |
===== 編譯與打包 ===== | ===== 編譯與打包 ===== | ||
+ | ==== 編譯 ==== | ||
+ | <code bash> | ||
+ | tar zxvf ixgbevf-3.1.2.tar.gz | ||
+ | cd ixgbevf-3.1.2/src | ||
+ | make | ||
+ | </code> | ||
+ | 如果沒意外,會產生ixgbevf.ko;可以透過insmod ixgbevf.ko載入它。 | ||
+ | ==== 打包 ==== | ||
+ | 這是從driver包內README看到的方法: | ||
+ | <code bash> | ||
+ | rpmbuild -tb ixgbevf-3.1.2.tar.gz | ||
+ | </code> | ||
+ | 在執行完指令且沒問題後,可以在以下位置找到你的東西: | ||
+ | <code bash> | ||
+ | /root/rpmbuild/RPMS/x84_64/ixgbevf-3.1.2-1.x86_64.rpm | ||
+ | </code> | ||
+ | 如果安裝的系統與build出來的版本不合,是會有WARNING的。 | ||
+ | ===== 其它 ===== | ||
+ | 一開始由於我是直接透過yum安裝kernel-headers與kernel-devel套件,在make過程中,一直出現implicit declaration error。起初懷疑和gcc版本有關,最後發現是由於yum安裝了更新版本的kernel-headers與kernel-devel。 | ||
+ | ===== Reference ===== | ||
+ | * [[http://jylin76.blogspot.tw/2011/02/cent-osintel-82566dm-2.html|Kernel header files not in any of the expected locations]] | ||
===== ===== | ===== ===== |