差異處

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

連向這個比對檢視

cpp:linux_kernel:build_driver:build_nic_on_centos6.7 [2016/10/12 13:59]
tony [安裝kernel-headers與kernel-devel]
cpp:linux_kernel:build_driver:build_nic_on_centos6.7 [2023/06/25 09:48]
行 1: 行 1:
-{{tag>​ixgvevf implicit_declaration gcc}} +
-====== Build ixgvevf kernel module on CentOS6.7 ====== +
-===== 確認環境 ===== +
-執行uname -a確認kernel版本,CentOS6.7如下:​ +
-<code bash> +
-2.6.32-573.el6.x86_64 +
-</​code>​ +
-===== 安裝kernel-headers與kernel-devel ===== +
-下載kernel-headers與kernel-devel rpm:​(從此[[http://​vault.centos.org/​centos/​6.7/​centosplus/​x86_64/​Packages/​|link]]找尋) +
-<code bash> +
-kernel-devel-2.6.32-573.el6.centos.x86_64.rpm +
-kernel-headers-2.6.32-573.el6.centos.x86_64.rpm +
-</​code>​ +
-在build system安裝這兩個rpm:​ +
-<code bash> +
-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 +
-</​code>​ +
-安裝之後,要執行以下指令讓make能夠找到header code: +
-<code bash> +
-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>​ +
-===== 下載對應驅動 ===== +
-到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>​ +
-===== 其它 ===== +
-一開始由於我是直接透過yum安裝kernel-headers與kernel-devel套件,在make過程中,一直出現implicit declaration error。起初懷疑和gcc版本有關,最後發現是由於yum安裝了更新版本的kernel-headers與kernel-devel。 +
-=====    ===== +
----- +
-\\ +
-~~DISQUS~~+