歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Linux系統入門學習:在RedHat Linux中編譯Ixgbe驅動

提問:我想要安裝最新版的ixgbe 10G網卡驅動。在CentOS, Fedora 或 RHEL中,我應該如何編譯ixgbe驅動?

想要在Linux使用Intel的PCI Express 10G網卡(例如,82598,82599,x540),需要安裝Ixgbe驅動。如今的Linux發行版都會預安裝ixgbe的可加載模塊,但是預安裝的ixgbe驅動不是完整功能版。如果想要開啟和定制所有10G網卡的功能(如,RSS、多隊列、虛擬化功能、硬件 offload 等),需要從源碼編譯安裝。

本文基於紅帽系平台(如,CentOS,RHEL或Fedora)。Debian系平台,請看這篇文章  http://www.linuxidc.com/Linux/2015-03/115571.htm。

 

第一步: 安裝依賴

首先,安裝必要的開發環境和安裝匹配的內核頭文件

  1. $ sudo yum install gcc make
  2. $ sudo yum install kernel-devel

 

第二步: 編譯Ixgbe

從官方頁面下載最新Ixgbe源碼

  1. $ wget http://downloads.sourceforge.net/project/e1000/ixgbe%20stable/3.23.2/ixgbe-3.23.2.tar.gz

請檢查支持的內核版本。例如,Ixgbe3.23.2版本支持Linux內核版本2.6.18到3.18.1。

提取壓縮包並編譯:

  1. $ tar -xvf ixgbe-3.23.2.tar.gz
  2. $ cd ixgbe-3.23.2/src
  3. $ make

如果成功,可以在當前目錄找到編譯完成的驅動(ixgbe.ko)。

可以運行這個命令來查看編譯信息:

  1. $ modinfo ./ixgbe.ko

將會輸出一個Ixgbe驅動的可用參數列表

 

第三步: 加載 Ixgbe 驅動

這步准備加載已經編譯好的驅動。

如果系統已經加載了Ixgbe驅動,首先需要卸載掉老版本。否則,新版本不能加載。

  1. $ sudo rmmod ixgbe.ko

然後插入編譯完成的驅動到內核中:

  1. $ sudo insmod ./ixgbe.ko

同時,你可以設置啟動參數

  1. $ sudo insmod ./ixgbe.ko FdirPballoc=3 RSS=16

驗證驅動是否加載成功,使用dmesg命令,查看其輸出

  1. $ dmesg

  1. Intel(R)10Gigabit PCI ExpressNetworkDriver- version 3.23.2
  2. Copyright(c)1999-2014IntelCorporation.
  3. ixgbe 0000:21:00.0: PCI INT A -> GSI 64(level, low)-> IRQ 64
  4. ixgbe 0000:21:00.0: setting latency timer to 64
  5. ixgbe:Receive-SideScaling(RSS)set to 16
  6. ixgbe:FlowDirector packet buffer allocation set to 3
  7. ixgbe:0000:21:00.0: ixgbe_check_options:FlowDirector will be allocated 256kB of packet buffer
  8. ixgbe:0000:21:00.0: ixgbe_check_options:FCoEOffload feature enabled
  9. ixgbe 0000:21:00.0: irq 87for MSI/MSI-X
  10. ixgbe 0000:21:00.0: irq 88for MSI/MSI-X
  11. ixgbe 0000:21:00.0: irq 89for MSI/MSI-X
  12. ixgbe 0000:21:00.0: irq 90for MSI/MSI-X
  13. ixgbe 0000:21:00.0: irq 91for MSI/MSI-X
  14. ixgbe 0000:21:00.0: irq 92for MSI/MSI-X
  15. ixgbe 0000:21:00.0: irq 93for MSI/MSI-X
  16. ixgbe 0000:21:00.0: irq 94for MSI/MSI-X
  17. ixgbe 0000:21:00.0: irq 95for MSI/MSI-X
  18. ixgbe 0000:21:00.0: irq 96for MSI/MSI-X
  19. ixgbe 0000:21:00.0: irq 97for MSI/MSI-X
  20. ixgbe 0000:21:00.0: irq 98for MSI/MSI-X
  21. ixgbe 0000:21:00.0: irq 99for MSI/MSI-X
  22. ixgbe 0000:21:00.0: irq 100for MSI/MSI-X
  23. ixgbe 0000:21:00.0: irq 101for MSI/MSI-X
  24. ixgbe 0000:21:00.0: irq 102for MSI/MSI-X
  25. ixgbe 0000:21:00.0: irq 103for MSI/MSI-X
  26. ixgbe 0000:21:00.0: eth3: DCA registration failed:-1
  27. ixgbe 0000:21:00.0: PCI Express bandwidth of 32GT/s available
  28. ixgbe 0000:21:00.0:(Speed:5.0GT/s,Width: x8,EncodingLoss:20%)
  29. ixgbe 0000:21:00.0: eth3: MAC:2, PHY:9, SFP+:3, PBA No: E68793-006
  30. ixgbe 0000:21:00.0:90:e2:ba:5b:e9:1c
  31. ixgbe 0000:21:00.0: eth3:EnabledFeatures:RxQ:16TxQ:16FdirHash RSC
  32. ixgbe 0000:21:00.0: eth3:Intel(R)10GigabitNetworkConnection
  33. ixgbe 0000:21:00.1: PCI INT B -> GSI 68(level, low)-> IRQ 68
  34. ixgbe 0000:21:00.1: setting latency timer to 64
  35. ixgbe:0000:21:00.1: ixgbe_check_options:FCoEOffload feature enabled
  36. ixgbe 0000:21:00.0: registered PHC device on eth3
  37. ixgbe 0000:21:00.1: irq 104for MSI/MSI-X
  38. ixgbe 0000:21:00.1: irq 105for MSI/MSI-X
  39. ixgbe 0000:21:00.1: irq 106for MSI/MSI-X
  40. ixgbe 0000:21:00.1: irq 107for MSI/MSI-X
  41. ixgbe 0000:21:00.1: irq 108for MSI/MSI-X
  42. ixgbe 0000:21:00.1: irq 109for MSI/MSI-X
  43. ixgbe 0000:21:00.1: irq 110for MSI/MSI-X
  44. ixgbe 0000:21:00.1: irq 111for MSI/MSI-X
  45. ixgbe 0000:21:00.1: irq 112for MSI/MSI-X
  46. ixgbe 0000:21:00.1: irq 113for MSI/MSI-X
  47. ixgbe 0000:21:00.1: irq 114for MSI/MSI-X
  48. ixgbe 0000:21:00.1: irq 115for MSI/MSI-X
  49. ixgbe 0000:21:00.1: irq 116for MSI/MSI-X
  50. ixgbe 0000:21:00.1: irq 117for MSI/MSI-X
  51. ixgbe 0000:21:00.1: irq 118for MSI/MSI-X
  52. ixgbe 0000:21:00.1: irq 119for MSI/MSI-X
  53. ixgbe 0000:21:00.1: irq 120for MSI/MSI-X
  54. ixgbe 0000:21:00.1: irq 121for MSI/MSI-X
  55. ixgbe 0000:21:00.1: irq 122for MSI/MSI-X
  56. ixgbe 0000:21:00.1: irq 123for MSI/MSI-X
  57. ixgbe 0000:21:00.1: irq 124for MSI/MSI-X
  58. ixgbe 0000:21:00.1: irq 125for MSI/MSI-X
  59. ixgbe 0000:21:00.1: irq 126for MSI/MSI-X
  60. ixgbe 0000:21:00.1: irq 127for MSI/MSI-X
  61. ixgbe 0000:21:00.1: irq 128for MSI/MSI-X
  62. ixgbe 0000:21:00.1: irq 129for MSI/MSI-X
  63. ixgbe 0000:21:00.1: irq 130for MSI/MSI-X
  64. ixgbe 0000:21:00.1: irq 131for MSI/MSI-X
  65. ixgbe 0000:21:00.1: irq 132for MSI/MSI-X
  66. ixgbe 0000:21:00.1: irq 133for MSI/MSI-X
  67. ixgbe 0000:21:00.1: irq 134for MSI/MSI-X
  68. ixgbe 0000:21:00.1: irq 135for MSI/MSI-X
  69. ixgbe 0000:21:00.1: irq 136for MSI/MSI-X
  70. ixgbe 0000:21:00.1: irq 137for MSI/MSI-X
  71. ixgbe 0000:21:00.1: irq 138for MSI/MSI-X
  72. ixgbe 0000:21:00.1: irq 139for MSI/MSI-X
  73. ixgbe 0000:21:00.1: irq 140for MSI/MSI-X
  74. ixgbe 0000:21:00.1: irq 141for MSI/MSI-X
  75. ixgbe 0000:21:00.1: irq 142for MSI/MSI-X
  76. ixgbe 0000:21:00.1: irq 143for MSI/MSI-X
  77. ixgbe 0000:21:00.1: irq 144for MSI/MSI-X
  78. ixgbe 0000:21:00.1: irq 145for MSI/MSI-X
  79. ixgbe 0000:21:00.1: irq 146for MSI/MSI-X
  80. ixgbe 0000:21:00.1: irq 147for MSI/MSI-X
  81. ixgbe 0000:21:00.1: irq 148for MSI/MSI-X
  82. ixgbe 0000:21:00.1: irq 149for MSI/MSI-X
  83. ixgbe 0000:21:00.1: irq 150for MSI/MSI-X
  84. ixgbe 0000:21:00.1: irq 151for MSI/MSI-X
  85. ixgbe 0000:21:00.1: irq 152for MSI/MSI-X
  86. ADDRCONF(NETDEV_UP): eth3: link isnot ready
  87. 8021q: adding VLAN 0 to HW filter on device eth3
  88. ixgbe 0000:21:00.1: eth4: DCA registration failed:-1
  89. ixgbe 0000:21:00.1: PCI Express bandwidth of 32GT/s available
  90. ixgbe 0000:21:00.1:(Speed:5.0GT/s,Width: x8,EncodingLoss:20%)
  91. ixgbe 0000:21:00.1: eth4: MAC:2, PHY:9, SFP+:4, PBA No: E68793-006
  92. ixgbe 0000:21:00.1:90:e2:ba:5b:e9:1e
  93. ixgbe 0000:21:00.1: eth4:EnabledFeatures:RxQ:48TxQ:48FdirHash RSC
  94. ixgbe 0000:21:00.1: eth4:Intel(R)10GigabitNetworkConnection
  95. ixgbe 0000:21:00.0: eth3: detected SFP+:3
  96. ixgbe 0000:21:00.1: registered PHC device on eth4
  97. ADDRCONF(NETDEV_UP): eth4: link isnot ready
  98. 8021q: adding VLAN 0 to HW filter on device eth4
  99. ixgbe 0000:21:00.1: eth4: detected SFP+:4
  100. ixgbe 0000:21:00.0: eth3: NIC LinkisUp10Gbps,FlowControl: RX/TX
  101. ADDRCONF(NETDEV_CHANGE): eth3: link becomes ready
  102. ixgbe 0000:21:00.1: eth4: NIC LinkisUp10Gbps,FlowControl: RX/TX
  103. ADDRCONF(NETDEV_CHANGE): eth4: link becomes ready
  104. eth3:noIPv6 routers present
  105. eth4:noIPv6 routers present

 

第四步: 安裝Ixgbe驅動

當確認驅動已經加載後,就可以安裝驅動到系統中了

  1. $ sudo make install

ixgbe.ko將會安裝在下列目錄

  1. /lib/modules/<kernel-version>/kernel/drivers/net/ixgbe

此時,編譯好的驅動將在啟動時自動加載,也可以通過運行命令加載它:

  1. $ sudo modprobe ixgbe


via: http://ask.xmodulo.com/compile-ixgbe-driver-centos-rhel-fedora.html

作者:Dan Nanni 譯者:Vic020 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

Copyright © Linux教程網 All Rights Reserved