差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
cpp:linux_kernel:build_driver:build_nic_on_centos6.7 [2016/10/12 13:28]
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]]
  
- +=====    ===== 
 +---- 
 +\\ 
 +~~DISQUS~~